比较不同的载体

时间:2013-11-10 02:14:22

标签: c++ arrays vector comparison

我正在尝试编写一些代码来逐元素地比较矢量。所以说我有三个int向量:

v1 = 1,2,3,4,5,6,7,8,9,10

v2 = 1,2,3,4,5,6,7,8,9,10

v3 = 1,2,3,4,5,6,7,8,9,10

我想逐个元素地比较三个元素 - 所以比较v1 [0],v2 [0],v3 [0]。然后是v1 [1],v2 [1],v3 [1],依此类推。这在C ++中怎么可能?我无法在谷歌的任何地方找到似乎能够做到这一点。也许我应该让向量成为一个二维数组并在cols上工作?

谢谢, 本。

2 个答案:

答案 0 :(得分:0)

试试这个:

bool vectors_are_equal = false;
const unsigned int size = v1.size();
for (unsigned int i = 0; i < size; ++i)
{
  if ((v1[i] == v2[i]) && (v2[i] == v3[i]))
  {
     continue;
  }
  else
  {
     break;
  }
}
if (i >= size)
{
  vectors_are_equal == true;
}

答案 1 :(得分:0)

Thomas Matthews,您的代码无法编译。这是一个有效的例子:

bool areVectorsEqual(const std::vector<int>& v1, const std::vector<int>& v2, const std::vector<int>& v3) {
  if (v1.size() != v2.size() || v2.size() != v3.size()) {
    return false;
  }

  for (int i = 0; i < v1.size(); i++) {
    if (v1[i] != v2[i] || v2[i] != v3[i]) {
      return false;
    }
  }

  return true;
}

您可以改进这一点,允许比较n个向量。