概念
set翻译为集合,是一个内部自动有序且不含重复元素的容器。
使用与定义与vector容器类似。
访问
只能通过迭代器访问
set<int>::iterator it;
常用函数
1.insert(x):将x插入set容器中,并自动递增排序、去重
2.find(x):返回set中对应值为x的迭代器
3.erase():用法与vector完全一致,删除元素
4.size():获得set容器内元素个数
5.clear():清空set容器内的所有元素
#include <iostream>
#include <set>//使用set容器要添加的头文件
using namespace std;
int main(){
set<int> nu;
for(int i=0;i<10;i++)
nu.insert(i);
for(int i=15;i>=10;i--)
nu.insert(i);//自动排序
for(set<int>::iterator it=nu.begin();it!=nu.end();it++)//只能访问迭代器的方式输出
cout<<*it<<" ";
cout<<endl;
set<int>::iterator it=nu.find(9);//在set集合中找元素值为9的元素
cout<<*it<<endl;
nu.erase(9);
cout<<"---------------------------------------------------------"<<endl;
for(set<int>::iterator it=nu.begin();it!=nu.end();it++)//只能访问迭代器的方式输出
cout<<*it<<" ";
cout<<endl;
nu.erase(nu.find(10),nu.end());//由元素10位置到元素末尾
cout<<"---------------------------------------------------------"<<endl;
for(set<int>::iterator it=nu.begin();it!=nu.end();it++)//只能访问迭代器的方式输出
cout<<*it<<" ";
cout<<endl;
nu.erase(nu.begin(),nu.find(5));//由开始到元素5位置
cout<<"---------------------------------------------------------"<<endl;
for(set<int>::iterator it=nu.begin();it!=nu.end();it++)//只能访问迭代器的方式输出
cout<<*it<<" ";
cout<<endl;
nu.clear();
cout<<"---------------------------------------------------------"<<endl;
cout<<nu.size()<<endl;//元素个数
return 0;
}
小结
set容器可以实现去重并升序排序