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;

Parameters

  1. Key - 包含的元素类型。Key 可以用包括用户自定义类型在内的其他任何数据类型替代。

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 返回一个与集合容器关联的分配器对象的副本。