假设有两个set如下:
#include <iostream>
#include <vector>
#include <set>
#include <map>
using namespace std;
set<string> setTemp;
set<string> setTemp1;
setTemp.insert("nihao1");
setTemp.insert("nihao2");
setTemp.insert("nihao3");
setTemp.insert("nihao4");
setTemp1.insert("nihao1");
setTemp1.insert("nihao2");
setTemp1.insert("nihao3");
setTemp1.insert("nihao4");
比较二者是否相等,可能有如下两种方法
1,直接比较:
if (setTemp.size() != setTemp1.size()){
cout << "is not equal.." << endl;
return;
}
set<string>::iterator it;
set<string>::iterator it1;
//遍历集合中的所有元素
bool flag = true;
for (it = setTemp.begin(), it1 = setTemp1.begin(); it != setTemp.end(); it++, it1++){
if (*it1 != *it){
flag = false;
break;
}
}
if (flag == true)
cout << "has found! "<< endl;
2,借助map比较:
map<set<string>, string> mTemp;
mTemp[setTemp] = "1";
if (mTemp.find(setTemp1) != mTemp.end()){
cout << "has found!" << endl;
}