Cpp Standard Library 简明教程
C++ Library - <set>
Introduction
set 是一种关联容器,它包含了一个类型为 Key 的唯一对象的有序集合。每个元素只能出现一次,因此不允许重复元素。
关联容器有四种类型:集合、多重集合、映射和多重映射。
一旦添加到容器中,集合中元素的值就不能被修改,即,元素总是 const。但是,它们可以从容器中插入或删除。
set 容器通常较 unordered_set 容器访问单个元素慢,但允许直接根据元素顺序迭代子集。
Definition
以下是 <set> 标头文件中 std::set 的定义
template <
class Key,
class Compare = std::less<Key>,
class Allocator = std::allocator<Key>
> class set;
Member types
以下成员类型可作为参数或返回类型,由成员函数使用。
Sr.No. |
Member types |
Definition |
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_pointerstd::allocator_traits<Allocator>::const_pointer |
7 |
iterator |
BidirectionalIterator |
8 |
const_iterator |
constant BidirectionalIterator |
9 |
reverse_iterator |
std::reverse_iterator <iterator> |
10 |
const_reverse_iterator |
std::reverse_iterator <const_iterator> |
11 |
size_type |
Unsigned Integer Type (std::size_t) |
12 |
difference_type |
Signed Integer Type (std::ptrdiff_t) |
13 |
key_compare |
Compare |
14 |
value_compare |
Compare |
15 |
allocator_type |
Allocator |
Functions from <set>
以下是 <set> 标头文件中所有方法的列表。
MEMBER FUNCTIONS
DEFAULT MEMBER FUNCTIONS
Sr.No. |
Method & Description |
1 |
Default constructor 构造 set 容器。 |
2 |
Range constructor 使用范围的内容构造 set 容器。 |
3 |
Copy constructor 使用其他 set 的副本构造 set 容器。 |
4 |
Move constructor 使用移动语义使用其他 set 的内容构造 set 容器。 |
5 |
Initializer-list constructor 使用初始化器列表的内容构造 set 容器。 |
6 |
(destructor)Destructs the set container. |
7 |
[role="bare"]../cpp_standard_library/cpp_set_operator=.html将值赋给 set 容器。 |
ITERATORS
Sr.No. |
Method & Description |
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 反向迭代器。 |
CAPACITY
Sr.No. |
Method & Description |
1 |
set::empty 返回集合容器是否为空。 |
2 |
set::size 返回集合容器中元素的数目。 |
3 |
set::max_size 返回集合容器可以容纳的最大元素数目。 |
MODIFIERS
Sr.No. |
Method & Description |
1 |
set::clear 从集合容器中移除所有元素。 |
2 |
set::insert 在集合容器中插入新元素。 |
3 |
set::emplace 如果唯一的话,在集合中插入新元素。 |
4 |
set::emplace_hint 如果唯一的话,在集合中插入新元素,并提示插入位置。 |
5 |
set::erase 从集合容器中移出一个元素或一系列元素。 |
6 |
set::swap 用同类型另一个集合容器的内容交换此容器的内容。 |
LOOKUP
Sr.No. |
Method & Description |
1 |
set::count 返回集合容器中匹配值元素的数目。 |
2 |
set::find 在集合容器中搜索值,如果找到,返回一个指向它的迭代器,否则返回一个指向 set::end 的迭代器。 |
3 |
set::lower_bound 返回一个指向集合容器中第一个元素的迭代器,该元素不被认为在 value 之前。 |
4 |
set::upper_bound 返回一个指向集合容器中第一个元素的迭代器,该元素被认为在 value 之后。 |
5 |
set::equal_range 返回一个范围的边界,该范围包括所有在集合容器中与 value 相等的元素。 |
OBSERVERS
Sr.No. |
Method & Description |
1 |
set::key_comp 返回集合容器使用的比较对象的副本。 |
2 |
set::value_comp 返回集合容器使用的比较对象的副本。 |
ALLOCATOR
Sr.No. |
Method & Description |
1 |
set::get_allocator 返回一个与集合容器关联的分配器对象的副本。 |