常见的STL容器--集合set
- set翻译为集合,是一个内部自动有序(递增)且不含重复元素的容器。如果要使用set,需要使用头文件
#include<set>
- set的定义
set<typename> name; //和vector类似
- set容器内元素的访问:只能通过迭代器(iterator)访问
//注意:可以通过*it来访问set里的元素,但不允许使用*(it+i)的访问方式
set<typename>::iterator it;
- 基本操作
set<int> st;
st.insert(x) //将x插入到set中
st.find(value) //返回set中对应值为value的迭代器
st.erase(it) //it为所需删除元素的迭代器
st.erase(st.find(100)) //利用find()函数找到100,然后用erase删除它
st.erase(value) //value为所需要删除元素的值
st.erase(first,last) //删除区间[first,last)中的元素
st.size() //用来获得set内元素的个数
st.clear() //用来清空set中所有的元素
- set最主要的作用就是自动去重并按升序排序。set中元素是唯一的,如果需要处理不唯一的情况,则可以使用multiset。另外,C++11标准中还增加了unordered_set,以散列代替set内部的红黑树,可以用来处理去重但不排序的需求,速度比set快很多。