C ++:比较两个向量

有什么办法比较两个向量?

if (vector1 == vector2) DoSomething(); 

注意:目前,这些向量不被sorting并包含整数值。

检查C ++的std::mismatch方法。

比较载体已经在DaniWeb论坛上讨论过了,也回答了

C ++:比较两个向量

检查下面的SOpost。 将有助于你。 他们用不同的方法达到了同样的效果。

比较两个向量C ++

你的代码( vector1 == vector2 )是正确的C ++语法。 向量有一个==运算符。

如果要将短向量与较长向量的一部分进行比较,则可以对向量使用equal()运算符。 ( 文档在这里 )

这是一个例子:

 using namespace std; if( equal(vector1.begin(), vector1.end(), vector2.begin()) ) DoSomething(); 

如果他们真的必须保持未sorting(他们真的不这样做),如果你处理成千上万的元素,那么我必须问你为什么要比较这样的向量),你可以把一个比较方法与未sorting的数组一起工作。

我唯一能做的就是创build一个临时vector3并假装将vector1所有元素添加到set_intersection ,然后在vector3searchvector2中的每个单独元素,如果find则删除它。 我知道这听起来很糟糕,但这就是为什么我不会很快编写任何C ++标准库。

真的,只是先把它们sorting。