首页 > 代码库 > set容器的insert返回值总结
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元素是否成功插入的标识,也可以用来确认该元素之前没有被插入也没有被处理过。
set容器的insert返回值总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。