- C 标准库
- C 标准库
- C++ 标准库
- C++ 库 - 主页
- C++ 库 - <fstream>
- C++ 库 - <iomanip>
- C++ 库 - <ios>
- C++ 库 - <iosfwd>
- C++ 库 - <iostream>
- C++ 库 - <istream>
- C++ 库 - <ostream>
- C++ 库 - <sstream>
- C++ 库 - <streambuf>
- C++ 库 - <原子>
- C++ 库 - <复杂>
- C++ 库 - <异常>
- C++ 库 - <功能>
- C++ 库 - <限制>
- C++ 库 - <语言环境>
- C++ 库 - <内存>
- C++ 库 - <新>
- C++ 库 - <数字>
- C++ 库 - <正则表达式>
- C++ 库 - <stdexcept>
- C++ 库 - <字符串>
- C++ 库 - <线程>
- C++ 库 - <元组>
- C++ 库 - <类型信息>
- C++ 库 - <实用程序>
- C++ 库 - <valarray>
C++ 库 - <集>
介绍
集合是一个关联容器,其中包含一组已排序的Key 类型的唯一对象。每个元素只能出现一次,因此不允许重复。
关联容器有四种:集合、多重集合、映射和多重映射。
集合中元素的值一旦进入容器就无法修改,即元素始终是 const。但它们可以插入容器或从容器中取出。
set 容器在通过键访问各个元素时通常比 unordered_set 容器慢,但它们允许根据子集的顺序直接迭代。
定义
以下是 <set> 头文件中 std::set 的定义
template < class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> > class set;
参数
键- 所包含元素的类型。
键可以由任何其他数据类型(包括用户定义类型)代替。
会员类型
以下成员类型可以用作成员函数的参数或返回类型。
先生。 | 会员类型 | 定义 |
---|---|---|
1 | 密钥类型 | 钥匙 |
2 | 值类型 | 钥匙 |
3 | 参考 | 分配器::参考 值类型& |
4 | 常量引用 | 分配器::const_reference 常量值类型& |
5 | 指针 | 分配器::指针 std::allocator_traits<分配器>::指针 |
6 | 常量指针 | 分配器::const_pointer std::allocator_traits<分配器>::const_pointer |
7 | 迭代器 | 双向迭代器 |
8 | 常量迭代器 | 常量双向迭代器 |
9 | 反向迭代器 | std::reverse_iterator <迭代器> |
10 | 常量反向迭代器 | std::reverse_iterator <const_iterator> |
11 | 尺码类型 | 无符号整数类型 (std::size_t) |
12 | 差异类型 | 有符号整数类型 (std::ptrdiff_t) |
13 | 关键比较 | 比较 |
14 | 值比较 | 比较 |
15 | 分配器类型 | 分配器 |
来自 <set> 的函数
下面是 <set> 标头中所有方法的列表。
会员功能
默认会员功能
先生。 | 方法及说明 |
---|---|
1 | 默认构造函数
构造集合容器。 |
2 | 范围构造函数
使用范围内容构造集合容器。 |
3 | 复制构造函数
使用其他集合的副本构造集合容器。 |
4 | 移动构造函数
使用移动语义用其他集合的内容构造集合容器。 |
5 | 初始化列表构造函数
使用初始化器列表的内容构造集合容器。 |
6 | (析构函数)
破坏设置的容器。 |
7 | 运算符=
将值分配给设置的容器。 |
迭代器
先生。 | 方法及说明 |
---|---|
1 | 设置::开始
将迭代器返回到开头。 |
2 | 设置::cbegin
将 const 迭代器返回到开头。 |
3 | 设置::结束
返回迭代器结束。 |
4 | 设置::cend
返回常量迭代器结束。 |
5 | 设置::r开始
返回反向迭代器以反向开始。 |
6 | 设置::crbegin
返回 const 反向迭代器以反向开始。 |
7 | 设置::撕裂
返回反向迭代器到反向结束。 |
8 | 设置::crend
返回 const 反向迭代器以反向结束。 |
容量
修饰符
先生。 | 方法及说明 |
---|---|
1 | 设置::清除
从集合容器中删除所有元素。 |
2 | 设置::插入
在集合容器中插入新元素。 |
3 | 设置::安放
如果新元素是唯一的,则将其插入到集合中。 |
4 | 设置::emplace_hint
如果新元素是唯一的,则在集合中插入新元素,并提示插入位置。 |
5 | 设置::擦除
从集合容器中删除单个元素或一系列元素。 |
6 | 设置::交换
将容器的内容与另一组相同类型容器的内容进行交换。 |
抬头
先生。 | 方法及说明 |
---|---|
1 | 设置::计数
返回集合容器中具有匹配值的元素的数量。 |
2 | 设置::查找
在 set 容器中搜索 value,如果找到则返回一个迭代器,否则返回一个迭代器 set::end。 |
3 | 设置::下界
返回一个迭代器,该迭代器指向集合容器中的第一个元素,该元素不被视为位于值之前。 |
4 | 设置::上限
返回一个迭代器,该迭代器指向集合容器中的第一个元素,该元素被视为在值之后。 |
5 | 设置::equal_range
返回范围的边界,该范围包括集合容器中与 value 等效的所有元素。 |
观察员
先生。 | 方法及说明 |
---|---|
1 | 设置::key_comp
返回设置容器使用的比较对象的副本。 |
2 | 设置::value_comp
返回设置容器使用的比较对象的副本。 |
分配器
先生。 | 方法及说明 |
---|---|
1 | 设置::获取分配器
返回与设置容器关联的分配器对象的副本。 |