比较两个set是否相等?(C++)

假设有两个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;
}

版权声明:本文为u010212101原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。