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 设置::最大大小

返回集合容器可以容纳的最大元素数。

修饰符

先生。 方法及说明
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 设置::获取分配器

返回与设置容器关联的分配器对象的副本。