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