set翻译为集合,是一个内部自动有序而且不重复的容器。在算法中有可能需要去除重复元素的情况下可以使用set。使用set需要使用头文件#include<set>
。
1.set的定义
单独定义set:
set<int> a;
set<double> b;
set<char> c;
定义set数组:
set<int> a[10]; //从a[0]-a[10]全部都是set容器
2.set元素访问
set只能通过迭代器访问:
set<int>::iterator it; //定义与set相同类型的迭代器
set<double>::iterator it;
set<char>::iterator it;
定义了迭代器,就可以通过*it来访问set里面的元素:
for(it=st.begin();it!=st.end();it++){
printf("%d",*it);
}
3.set常用函数
(1) insert()
insert(x)可以将x插入set容器中,并且会自动排序(递增顺序)和去重:
set<int> st;
st.insert(2);
st.insert(3);
st.insert(1);
(2) find()
find(value)返回set中对应值为value的迭代器:
set<int>::iterator it=find(2); //找到值为2的set中的迭代器
(3) erase()
删除单个元素或者删除一个区间内的所有元素:
st.erase(st.find(1)); //删除set中值为1的
st.erase(it.find(30),st.end()); //删除元素30至set末尾之间的元素
(4) size()
返回set内元素的个数。
(5) clear()
清空set中所有的元素。
网友评论