set容器的insert返回值总结

#include <iostream>
#include <set>
#include <string>
using namespace std;


int main() {


    set<string> setTemp;

    string name1 = "hener";
	string name2 = "henyi";

	if(setTemp.insert(name1).second)
	{
		 cout << "1111" << endl;
	}
	if(setTemp.insert(name1).second)
	{
		 cout << "2222" << endl;
	}
	if(setTemp.insert(name2).second)
	{
		 cout << "3333" << endl;
	}


	getchar();
	return 0;
}

  //摘抄自:http://classfoo.com/ccby/article/Z8zWky

  set的单元素版返回一个二元组(Pair)。成员 pair::first 被设置为指向新插入元素的迭代器或指向等值的已经存在的元素的迭代器。成员 pair::second 是一个 bool 值,如果新的元素被插入,返回 true,如果等值元素已经存在(即无新元素插入),则返回 false。  

  因为在 set 中元素的主键是唯一的,当前插入操作将会检测被插入元素是否等于容器中某个已存在元素,如果是,新的元素将不会被插入,且返回指向这个等值的已经存在的元素(如果当前函数有返回值)。

  //

  所以set.insert(xx).second是用来确认set元素是否成功插入的标识,也可以用来确认该元素之前没有被插入也没有被处理过。

  

 

  

转载于:https://www.cnblogs.com/eryu/p/7163093.html

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值