比较向量<int>是否几乎相等,STL 算法 - C++

And*_*vik -4 c++ compare equals vector

我正在做一个自动取款机任务。我应该在 STL 算法的帮助下比较两个不同向量中给定范围内的所有向量元素是否几乎相等。

在这种情况下几乎相等:2。

有人知道这个问题的解决方案吗?

jua*_*nza 6

如果您想要小于比较,请使用std::lexicographyal_compare和自定义比较器来实现对您来说几乎相等的任何内容。

如果您想要相等比较,请使用std::equal,如评论中指出的:

bool comp(int a, int b) {
  return std::abs(a-b) <= 2;
}

int main() {

  std::vector<int> v0{2,3,4,5,5,5};
  std::vector<int> v1{6,7,8,9,8,7};
  std::cout << std::boolalpha;
  std::cout << std::equal(v0.begin(), v0.end(), v1.begin(), comp);

}
Run Code Online (Sandbox Code Playgroud)

这是一个简化的比较函数,用于展示如何使用该算法,如果向量具有不同的长度,您必须决定该怎么做。