C++标准模板库(STL)用法介绍:set
set:集合,STL容器之一,可以理解成一个内部自动有序且不含重复元素的容器。
使用set前需要添加:
#include <set>
using namespace std;
1. set声明
set是一个模板类,所以使用前需要声明。
定义
set<typename> st;
typename可以是任何基本类型,也可以是STL标准容器
二维
- 两个维都是容器
set<set<typename> > name;
注:>>之间需要加空格,否则可能会被判定为右移操作
- set数组
set<typename> Arrayname[arraySize];
2. set访问
访问set内元素只能通过set的迭代器
通过迭代器访问
迭代器(iterator)理解为类似指针的东西,定义为:
set<typename>::iterator it;
it是set<typename>::iterator类型的变量,*it用来访问set里的元素。迭代器都支持支持自增自减,但只有vector和string支持加减整数的操作。因此,set只能通过迭代器的自增迭代去访问元素,不支持*(it + i)的访问方式。
假设现在有一个set容器st,那么,st.begin()和st.end()标志着迭代器的开头(首元素的地址)和结尾(尾元素地址的下一个地址)。
注:对于不是vector或string的容器,按下标访问包括*(it + i),都失去了意义
3. set常用函数
(1) insert()
insert(x)用来在set的里面添加新元素x,并自动增序排列和去重
(2) find()
find(value)用来返回set中对应值为value的迭代器
(3) erase()
-
删除单个元素
-
erase(it)用来删除迭代器it处的元素,可以结合find函数使用
-
erase(value)用来直接删除值为value的元素
-
-
删除一个区间内的所有元素
erase(first, last)用来删除迭代器[first, last)内的所有元素
(4) size()
size()用来获得set中的元素个数
(5) clear()
clear()用来将set中的所有元素清空
4. set用途
set最重要的作用就是自动去重并按升序排序
欢迎访问我的STL系列: