set用来保存只有键值没有实值的容器,这类容器的基础结构是红黑树,这个红黑树各节点数据是单一数据而不是pair。当元素插入容器时,会按照指定排序自动排序,默认从小到大。
#include<iostream>
#include<set>
using namespace std;
int main(){
set<int> set1;
set<int>::iterator it;
for(int i=0;i<5;i++){
set1.insert(i*10);
}
pair<set<int>::iterator,bool>ret=set1.insert(20);
if(!ret.second){
it=ret.first;
cout<<*ret.first<<endl;
}
int insGrup[]={5,10,15};
set1.insert(insGrup,insGrup+3);
for(it=set1.begin();it!=set1.end();it++){
cout<<*it<<" ";
}
cout<<endl;
set1.erase(24);
for(it=set1.begin();it!=set1.end();it++){
cout<<*it<<" ";
}
it=set1.begin();
set1.erase(it);
for(it=set1.begin();it!=set1.end();it++){
cout<<*it<<" ";
}
set1.erase(it,set1.end());
for(it=set1.begin();it!=set1.end();it++){
cout<<*it<<" ";
}
set1.clear();
if(set1.empty()){
cout<<"\nset1 is empty"<<endl;
}
if(set1.size()==0){
cout<<"set1 size is 0"<<endl;
}
int array[]={24,12,18,9};
set<int>first(array,array+2),second(array+1,array+4);
first.swap(second);
for(it=first.begin();it!=first.end();it++){
cout<<*it<<" ";
}
cout<<endl;
for(it=second.begin();it!=second.end();it++){
cout<<*it<<" ";
}
cout<<endl;
return 0;
}