C++ STL Set集合
集合简介
集合 是C++ STL(标准模板库)的一部分。集合是关联容器,它存储排好序的键,其中每个键都是唯一的,可以插入或删除,但不能修改。
语法
template < class T, // set::key_type/value_type
class Compare = less<T>, // set::key_compare/value_compare
class Alloc = allocator<T> // set::allocator_type
> class set;
参数
T :容器集合中存储的元素类型。
Compare :比较类,接受两个相同类型的参数 bool,并返回一个值。此参数是可选的,默认值为二元谓词less。
Alloc :分配器对象的类型,用于定义存储分配模型。
成员函数
以下是set的所有成员函数的列表:
构造函数/析构函数
| 功能 |
描述 |
| (constructor) |
构造集合 |
| (destructor) |
设置析构函数 |
| operator= |
将集合的元素复制到另一个集合中。 |
迭代器
| 功能 |
描述 |
| Begin |
返回指向集合中第一个元素的迭代器。 |
| cbegin |
返回指向集合中第一个元素的常量迭代器。 |
| End |
返回指向末尾位置的迭代器。 |
| Cend |
返回指向末尾位置的常量迭代器。 |
| rbegin |
返回指向末尾位置的反向迭代器。 |
| Rend |
返回指向开始位置的反向迭代器。 |
| crbegin |
返回指向末尾位置的常量反向迭代器。 |
| Crend |
返回指向开始位置的常量反向迭代器。 |
容量
| 函数 |
描述 |
| empty |
如果集合为空,则返回 true。 |
| Size |
返回集合中元素的数量。 |
| max_size |
返回集合的最大大小。 |
修改符
| 函数 |
描述 |
| insert |
在集合中插入元素。 |
| Erase |
从集合中删除元素。 |
| Swap |
交换集合的内容。 |
| Clear |
删除集合中的所有元素。 |
| emplace |
构造并将新元素插入集合中。 |
| emplace_hint |
构造并按提示将新元素插入集合中。 |
观察者
| Functions |
Description |
| key_comp |
返回键值比较对象的副本。 |
| value_comp |
返回值比较对象的副本。 |
操作
| 函数 |
描述 |
| Find |
查找具有给定键的元素。 |
| count |
获取与给定键匹配的元素数量。 |
| lower_bound |
返回下界的迭代器。 |
| upper_bound |
返回上界的迭代器。 |
| equal_range |
返回与给定键匹配的元素范围。 |
分配器
| 函数 |
描述 |
| get_allocator |
返回用于构造集合的分配器对象。 |
非成员重载函数
| 函数 |
描述 |
| operator |
检查两个集合是否相等。 |
| operator!= |
检查两个集合是否不相等。 |
| operator< |
检查第一个集合是否小于其他集合。 |
| operator<= |
检查第一个集合是否小于等于其他集合。 |
| operator> |
检查第一个集合是否大于其他集合。 |
| operator>= |
检查第一个集合是否大于等于其他集合。 |
| swap() |
交换两个集合的元素。 |