C++ Library - <set>
介绍 (Introduction)
set是一个关联容器,它包含一组有序的Key类型的唯一对象。 每个元素只能出现一次,因此不允许重复。
有四种关联容器:set,multiset,map和multimap。
集合中元素的值不能在容器中修改一次,即元素总是const。 但是它们可以插入容器或从容器中取出。
set容器在按键访问单个元素时通常比unordered_set容器慢,但它们允许根据子集的顺序直接迭代子集。
定义 (Definition)
下面是
template <
class Key,
class Compare = std::less<Key>,
class Allocator = std::allocator<Key>
> class set;
参数 (Parameters)
Key - 包含的元素的类型。
密钥可以由任何其他数据类型替换,包括用户定义的类型。
成员类型 (Member types)
以下成员类型可以用作参数或按成员函数返回类型。
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | key_type | Key |
2 | value_type | Key |
3 | reference | 分配器::参考 值类型& |
4 | const_reference | 分配器::为const_reference const value_type& |
5 | pointer | 分配器::指针 的std :: allocator_traits ::指针 |
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 | 无符号整数类型(std :: size_t) |
12 | difference_type | 签名整数类型(std :: ptrdiff_t) |
13 | key_compare | Compare |
14 | value_compare | Compare |
15 | allocator_type | Allocator |
来自的函数
以下是
会员职能
DEFAULT MEMBER FUNCTIONS
Sr.No. | 方法和描述 |
---|---|
1 | 默认构造函数 构造set容器。 |
2 | 范围构造函数 构造具有范围内容的set容器。 |
3 | 复制构造函数 使用其他set的副本构造set容器。 |
4 | 移动构造函数 使用move语义使用其他set的内容构造set容器。 |
5 | Initializer-list构造函数 使用inializer列表的内容构造set容器。 |
6 | (destructor) 破坏集合容器。 |
7 | operator= 将值分配给集合容器。 |
迭代器
Sr.No. | 方法和描述 |
---|---|
1 | set::begin 将迭代器返回到开头。 |
2 | set::cbegin 将const迭代器返回到开头。 |
3 | set::end 返回结束的迭代器。 |
4 | set::cend 返回结束的const迭代器。 |
5 | set::rbegin 返回反向迭代器以反向开始。 |
6 | set::crbegin 返回const反向迭代器以反向开始。 |
7 | set::rend 返回反向结束的反向迭代器。 |
8 | set::crend 返回const反向迭代器以反向结束。 |
容量
Sr.No. | 方法和描述 |
---|---|
1 | set::empty 返回设置容器为空时。 |
2 | set::size 返回set容器中的元素数。 |
3 | set::max_size 返回set容器可容纳的最大元素数。 |
MODIFIERS
Sr.No. | 方法和描述 |
---|---|
1 | set::clear 从集合容器中删除所有元素。 |
2 | set::insert 在set容器中插入新元素。 |
3 | set::emplace 如果它是唯一的,则在集合中插入新元素。 |
4 | set::emplace_hint 如果它是唯一的,则在集合中插入新元素,并在插入位置上添加提示。 |
5 | set::erase 从集合容器中删除单个元素或一系列元素。 |
6 | set::swap 通过相同类型的另一个集合容器的内容交换容器的内容。 |
LOOKUP
Sr.No. | 方法和描述 |
---|---|
1 | set::count 返回set容器中具有匹配值的元素数。 |
2 | set::find 在set容器中搜索value,如果找到则返回一个迭代器,否则返回一个迭代器到set :: end。 |
3 | set::lower_bound 返回指向set容器中第一个元素的迭代器,该元素不被视为在value之前。 |
4 | set::upper_bound 返回一个迭代器,指向set容器中的第一个元素,该元素被认为是在值之后。 |
5 | set::equal_range 返回包含集合容器中与value等效的所有元素的范围的边界。 |
观察者 OBSERVERS
Sr.No. | 方法和描述 |
---|---|
1 | set::key_comp 返回set容器使用的比较对象的副本。 |
2 | set::value_comp 返回set容器使用的比较对象的副本。 |
分配器(ALLOCATOR)
Sr.No. | 方法和描述 |
---|---|
1 | set::get_allocator 返回与set容器关联的allocator对象的副本。 |