set
set为一个内部自动有序不含重复元素的容器
可以用在需要去掉重复元素上,并且set可以自动排序
使用时需要加入头文件 与using namespace std;
set 的定义
set<typename> name;
写法相同,STL基本都这样定义
set 容器内元素的访问
set只能通过迭代器(iterator)访问
set<int>::iterator it;
set<char>::iterator it;
得到了迭代器it通过it访问
除了vector和string之外stl容器不支持(it+i)访问
只能通过枚举实现
#include<stdio.h>
#include<set>
using namespace std;
int main()
{
set<int> st;
st.insert(3);
st.insert(5);
st.insert(2);
st.insert(3);
for(set<int>::iterator it=st.begin();it!=st.end();it++)
{
printf("%d",*it);
}
return 0;
}
结果为:
2 3 5
set常用函数解析
insert()
插入元素因为会自动排序
O(logN)
find()
find(value) 返回对应值的迭代器
O(log N)
erase()
1.erase(it)删除迭代器
O(1)
2.erase(value)
删除元素的值
3.删除一个区间(first,last)
[first,last)
复杂度O(last-first)
size()
得到个数 O(1)
clear()
清空所有元素 O(N)
set 常见用途
自动去重升序排序
另外C++11中还有unordered_set,(红黑树)可以扩展一下