我们通常希望在set插入失败后,知道已经得到重复的数值。
(解释摘抄自:https://www.cnblogs.com/eryu/p/7163093.html)
set的单元素版返回一个二元组(Pair)。成员 pair::first 被设置为指向新插入元素的迭代器或指向等值的已经存在的元素的迭代器。成员 pair::second 是一个 bool 值,如果新的元素被插入,返回 true,如果等值元素已经存在(即无新元素插入),则返回 false。
因为在 set 中元素的主键是唯一的,当前插入操作将会检测被插入元素是否等于容器中某个已存在元素,如果是,新的元素将不会被插入,且返回指向这个等值的已经存在的元素(如果当前函数有返回值)。
#include <iostream>
#include <cstring>
#include <stdio.h>
#include <set>
using namespace std;
int main() {
set<int> S;
for(int i=1;i<=3;++i){
if(S.insert(i%2).second)
printf("%d insert successfully!\n",i%2);
else
printf("%d insert error!\n",i%2);
}
cout<<"S.size:"<<S.size()<<endl;
S.clear();
}