一、set容器
(1)简介
STL中的set容器是一个在计算机科学领域十分重要的概念。
set翻译为集合的意思,是一个内部自动有序且不含有重复元素的容器,set最主要的作用是自动去重并按升序排序,因此在遇到需要去重但是不方便开数组的时候,使用set就非常方便,set容器中的元素是唯一的,其内部采用“红黑树”实现。
set容器定义于<set>头文件,并且为于namespace std空间里,若想用set容器,则需先写入如下代码:
#include<set>//用万能头<bits/stdc++.h>的当我没说
using namespace std;
定义set的方式如下:
set<typename> name;
(2)相关函数Ⅰ
成员方法 | 功能 |
---|---|
insert() | 向set中添加元素。 |
count(val) | 在当前set容器里,查找值为val的个数并返回,由于set里元素的值是唯一的,该函数只能返回0(没有元素)或1。 |
empty() | 若容器为空,返回TRUE,否则返回false。 |
size() | 返回当前set容器中元素的个数 |
clear() | 清空当前set容器中的所有元素 |
二、set的迭代器
注意:set只能通过迭代器访问,即先定义一个迭代器:
set<typename>::iterator it;
说明!
1.双向访问迭代器
2.不支持随机访问
3.支持星号应用,如:cout<<*it<<endl;
4.仅支持++,--两个算数运算
5.仅支持!=,== 两个关系运算
(1)相关函数Ⅱ
成员方法 | 功能 |
---|---|
begin() | 返回容器中已排好序的第一个元素的双向迭代器 |
end() | 返回容器中已排好序的最后一个元素的下一个位置双向迭代器 |
erase() | 删除set中储存的容器 |
find(val) | 在set中招值为val的值,找到了,返回该元素的迭代器,否则返回end()的迭代器 |