比较两个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;
}
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值