-1

我正在尝试编写一些代码来逐个元素地比较向量。所以说我有三个 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++ 中怎么可能?我在谷歌上找不到任何似乎能够做到这一点的地方。也许我应该只将向量设为二维数组并在列上工作?

谢谢,本。

4

2 回答 2

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;
}
于 2013-11-10T03:06:13.357 回答
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 个向量。

于 2013-11-10T03:23:14.917 回答