我正在尝试编写一些代码来逐元素地比较矢量。所以说我有三个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上工作?
谢谢, 本。
答案 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个向量。