简介
set 是一个关联容器,它包含一组有序的Key类型的唯一对象.每个元素只能出现一次,因此不允许重复.
有四种关联容器:set,multiset,map和multimap.
集合中元素的值不能在容器中修改一次,即元素总是const.但是它们可以从容器中插入或删除.
set容器通常比unordered_set容器在按键访问单个元素时要慢,但它们允许根据子命令直接迭代子集.
定义
以下是来自< set>的std :: set的定义头文件
template < class Key, class Compare = std::less, class Allocator = std::allocator > class set;
参数
Key : 包含的元素的类型.
键可以被任何其他数据类型替换,包括用户定义的类型.
成员类型
以下成员类型可以用作参数或按成员函数返回类型.
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | key_type | Key |
2 | value_type | Key |
3 | reference | Allocator :: reference value_type& |
4 | const_reference | Allocator :: const_reference const value_type& |
5 | pointer | Allocator :: pointer std :: allocator_traits< Allocator> :: pointer |
6 | const_pointer | Allocator :: const_pointer std :: allocator_traits< Allocator> :: const_pointer |
7 | iterator | BidirectionalIterator |
8 | const_iterator | 常量BidirectionalIterator |
9 | reverse_iterator | std :: reverse_iterator< iterator> |
10 | const_reverse_iterator | std :: reverse_iterator< const_iterator> |
11 | size_type | 无符号整数类型(标准::的size_t) |
12 | difference_type | 签名整数类型(std :: ptrdiff_t) |
13 | key_compare | 比较 |
14 | value_compare | 比较 |
15 | allocator_type | 分配器 |
来自< set>的函数
以下是来自< set>的所有方法的列表标题.
成员函数
默认成员函数
Sr.No. | 方法&说明 |
---|---|
1 | 默认构造函数 构造集合容器. |
2 | 范围构造函数 构造包含范围内容的集合容器. |
3 | 复制构造函数 构造集合容器与其他集的副本. |
4 | 移动构造函数 使用移动语义构造包含其他集合内容的集合容器. |
5 | 初始化列表构造函数 使用inializer列表的内容构造set容器. |
6 | (析构函数) 破坏集合容器. |
7 | operator = 将值分配给集合容器. |
ITERATORS
Sr.不. | 方法&说明 |
---|---|
1 | set::begin 将迭代器返回到开头. |
2 | set : :cbegin 将const迭代器返回到开头. |
3 | set :: end 返回结束的迭代器. |
4 | set :: cend 返回要结束的常量迭代器. |
5 | set::rbegin 返回反向开始的反向迭代器. |
6 | set :: crbegin 返回const反向迭代器以反向开始. |
7 | set :: rend 返回反向迭代的反向迭代器. |
8 | set :: crend 返回const反向迭代器到反向结束. |
CAPACITY
Sr.No. | 方法&说明 |
---|---|
1 | set::empty 返回设置容器为空的时间. |
2 | set :: size 返回集合容器中的元素数. |
3 | set :: max_size 返回集合容器可以容纳的最大元素数. |
MODIFIERS
Sr.No. | 方法&说明 |
---|---|
1 | set::clear 从集合容器中删除所有元素. |
2 | set :: insert 在集合容器中插入新元素. |
3 | set :: emplace 在集合中插入新元素,如果它是唯一的. |
4 | set :: emplace_hint 在集合中插入新元素,如果它是唯一的,带有提示插入位置. |
5 | set :: erase 从集合容器中删除单个元素或一系列元素. |
6 | set :: swap 使用相同类型的另一个集合容器的内容交换容器的内容. |
LOOKUP
Sr.No. | 方法&说明 |
---|---|
1 | set::count 返回集合容器中具有匹配值的元素数. |
2 | set :: find 在set容器中搜索value,如果找到则返回一个迭代器,否则返回一个迭代器到set :: end. |
3 | set::lower_bound 返回指向集合容器中第一个元素的迭代器,该元素不被视为在值之前. |
4 | set :: upper_bound 返回迭代器点g到集合容器中的第一个元素,它被认为是在值之后. |
5 | set :: equal_range 返回界限包含集合容器中与值等价的所有元素的范围. |
OBSERVERS
Sr.No. | 方法&说明 |
---|---|
1 | set::key_comp 返回集合容器使用的比较对象的副本. |
2 | set :: value_comp 返回set容器使用的比较对象的副本. |
ALLOCATOR
Sr.No. | Method&说明 |
---|---|
1 | set::get_allocator 返回与集合容器关联的分配器对象的副本. |
非会员超载功能
Sr.No. | 方法&说明 |
---|---|
1 | set :: operator == 比较两个容器的内容,无论它们是否相等. |
2 | set :: operator!= 比较两个容器的内容,不论它们是否不相等. |
3 | set :: operator< 比较两个容器的内容,小于. |
4 | set::operator<= 比较两个容器的内容,小于等于. |
5 | set :: operator> 比较两个容器的内容,它们大于. |
6 | set :: operator> = 比较两个容器的内容,当它们大于等于. |