在C++中检查两个向量是否相等的最快方法是什么?
我正在尝试找到最快的方式来查看矩阵中的任何一行是否等于任何一列,因此逐个元素比较并在不相等时退出循环并不够好。
<algorithm>
的std::equal
。operator==
和std::equal
之间存在微妙的区别:如果类型不同(例如std::vector<int>
和std::vector<double>
),前者将无法工作,而后者可以工作。operator==
也能正常工作,就像 @Jarod42所提到的那样。vector::operator ==
更加简单。 - Jarod42operator==
将无法工作,而 std::equal
可以代替它。 - skypjack只需使用向量的operator ==
:
std::vector<int> v1{1, 2, 3, 4}, v2{1, 2, 3, 4};
bool are_equal = (v1 == v2);
在 C++ 的 Vector STL 中,等号运算符(==
)被重载了。因此,您可以像比较两个整数一样直接比较它们。
要比较矩阵的行和列,可以使用循环并直接使用 ==
比较行和列。