set容器的insert返回值總結
阿新 • • 發佈:2017-07-13
div 操作 using com .com air blog article ()
#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返回值總結