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
,然后在vector3
searchvector2
中的每个单独元素,如果find则删除它。 我知道这听起来很糟糕,但这就是为什么我不会很快编写任何C ++标准库。
真的,只是先把它们sorting。