c++ vector 用sort排序后 如何比较 两个vector 是否相等
我在做两个vector<string> 的比较问题,测试时发现,一开始两个
vector<string>赋同样的值时,用“==”号判断是否相等,返回ture
但是两个都加了sort排序后,就不一样了。
vector<string> vec1;
vec1.push_back("1");
vec1.push_back("4");
vec1.push_back("2");
vec1.push_back("3");
vector<string> vec2;
vec2.push_back("4");
vec2.push_back("1");
vec2.push_back("2");
vec2.push_back("2");
if(vec1 == vec2){
cout << "before sort equal" << endl;
}
if(vec1 != vec2) {
cout << "before sort unequal" << endl;
}
//这里因为两个容器存的不一样,所以输出unequal
sort(vec1.begin(), vec1.end());
sort(vec2.begin(), vec2.end());
//sort之后,vec1,和vec2 里面内容 顺序都一样了
if(vec1 == vec2){
cout << "after sort equal" << endl;
}
if(vec1 != vec2) {
cout << "after sort unequal" << endl;
}
//但是为什么还是输出不相等??, 我要判别出sort之后相等,该如何操作?