C++ 库 - <forward_list>



简介

forward_list 是一个常用的序列容器。容器是一个保存相同类型数据的对象。forward_list 容器以单链表的形式实现,因此它提供对其数据的单向顺序访问。

forward_list 不提供快速的随机访问,它只支持单向的顺序访问。forward_list 允许在序列中的任何位置进行插入和删除操作,时间复杂度为常数。

forward_list 的元素可以散布在内存的不同块中。容器存储必要的信息以允许顺序访问其数据。forward_list 可以根据需要在运行时从两端缩小或扩展。存储需求由内部分配器自动满足。

零大小的 forward_list 也是有效的。在这种情况下,forward_list.begin() 和 forward_list.end() 指向相同的位置。但是,调用 front() 的行为是未定义的。

定义

以下是来自 <forward_list> 头文件的 std::forward_list 的定义

template < class T, class Alloc = allocator<T> > class forward_list;

参数

  • T − 包含的元素的类型。

    T 可以用任何其他数据类型替换,包括用户定义类型。

  • Alloc − 分配器对象的类型。

    默认情况下,使用分配器类模板,它定义了最简单的内存分配模型并且与值无关。

成员类型

以下成员类型可用作成员函数的参数或返回值类型。

序号 成员类型 定义
1 value_type T(模板的第一个参数)
2 allocator_type Alloc(模板的第二个参数)
3 reference value_type&
4 const_reference const value_type&
5 pointer value_type*
6 const_pointer const value_type*
7 iterator value_type 的随机访问迭代器
8 const_iterator const value_type 的随机访问迭代器
9 size_type size_t
10 difference_type ptrdiff_t

来自 <forward_list> 的函数

以下是 <forward_list> 头文件中的所有方法列表。

构造函数

序号 方法 & 描述
1 forward_list::forward_list 默认构造函数

构造一个空 forward_list,其中包含零个元素。

2 forward_list::forward_list 填充构造函数

构造一个新的 forward_list,其中包含n个元素并将val分配给 forward_list 的每个元素。

3 forward_list::forward_list 填充构造函数

构造一个新的 forward_list,其中包含n元素并将零值分配给 forward_list 的每个元素。

4 forward_list::forward_list 范围构造函数

构造一个 forward_list,其元素数量与范围内的元素数量相同firstlast.

5 forward_list::forward_list 复制构造函数

构造一个 forward_list,其中包含现有列表中每个元素的副本。

6 forward_list::forward_list 移动构造函数

使用移动语义构造一个 forward_list,其内容为other

7 forward_list::forward_list 初始化列表构造函数

从初始化列表构造一个 forward_list。

析构函数

序号 方法 & 描述
1 forward_list::~forward_list

通过释放其内存来销毁 forward_list 对象。

成员函数

序号 方法 & 描述
1 forward_list::assign 范围版本

通过替换旧值将新值分配给 forward_list。

2 forward_list::assign 填充版本

通过替换旧值将新值分配给 forward_list。

3 forward_list::assign 初始化列表版本

通过替换旧值将新值分配给 forward_list。

4 forward_list::before_begin

返回一个随机访问迭代器,该迭代器指向 forward_list 的第一个元素之前的职位。

5 forward_list::begin

返回一个随机访问迭代器,该迭代器指向 forward_list 的第一个元素。

6 forward_list::cbefore_begin

返回一个常量随机访问迭代器,该迭代器指向 forward_list 的第一个元素之前的职位。

7 forward_list::cbegin

返回一个常量随机访问迭代器,该迭代器指向 forward_list 的开头。

8 forward_list::cend

返回一个常量随机访问迭代器,该迭代器指向 forward_list 的末尾。

9 forward_list::clear

通过从 forward_list 中删除所有元素并设置 forward_list 的大小为零来销毁 forward_list。

10 forward_list::emplace_after

position之后构造和插入新元素到 forward_list 中,并将 forward_list 的大小增加一。

11 forward_list::emplace_front

在 forward_list 的开头插入新元素,并将 forward_list 的大小增加一。

12 forward_list::empty

测试 forward_list 是空还是非空。

13 forward_list::end

返回一个随机访问迭代器,该迭代器指向 forward_list 的最后一个元素。

14 forward_list::erase_after位置版本

从 forward_list 中删除position之后单个元素。

15 forward_list::erase范围版本

从 forward_list 中删除一系列元素。

16 forward_list::front

返回对 forward_list 的第一个元素的引用。

17 forward_list::get_allocator

返回与 forward_list 关联的分配器

18 forward_list::insert_after 单个元素版本

通过在 forward_list 中的position之后插入新元素来扩展迭代器

19 forward_list::insert_after 移动版本

通过在 forward_list 中的position之后插入新元素来扩展迭代器

20 forward_list::insert_after 填充版本

通过在 forward_list 中的position之后插入新元素来扩展迭代器

21 forward_list::insert_after 范围版本

通过在 forward_list 中的position之后插入新元素来扩展迭代器

22 forward_list::insert_after 初始化列表版本

通过在 forward_list 中的position之后插入新元素来扩展迭代器

23 forward_list::max_size

返回 forward_list 可以容纳的最大元素数。

24 forward_list::merge

将两个已排序的 forward_list 合并为一个。

25 forward_list::merge 移动版本

将两个已排序的 forward_list 合并为一个。

26 forward_list::merge 比较函数

将两个已排序的 forward_list 合并为一个。

27 forward_list::merge 比较函数移动版本

使用移动语义将两个已排序的 forward_list 合并为一个。

28 forward_list::operator= 复制版本

通过替换旧值将新内容分配给 forward_list。

29 forward_list::operator= 移动版本

将新内容分配给 forward_list,替换旧内容。

30 forward_list::operator= 初始化列表版本

将新内容分配给 forward_list,替换旧内容。

31 forward_list::pop_front

从 forward_list 中删除第一个元素。

32 forward_list::push_front 复制版本

在 forward_list 的开头插入新元素。

33 forward_list::push_front 移动版本

在 forward_list 的开头插入新元素。

34 forward_list::remove

从 forward_list 中删除与该值匹配的元素。

35 forward_list::remove_if

从 forward_list 中删除满足条件的元素。

36 forward_list::resize

更改 forward_list 的大小。

37 forward_list::resize 值版本

更改 forward_list 的大小。

38 forward_list::reverse

反转 forward_list 中存在的元素的顺序。

39 forward_list::sort

对 forward_list 的元素进行排序。

40 forward_list::sort 比较函数

对 forward_list 的元素进行排序。

41 forward_list::splice_after

将 forward_list 中的所有元素转移到 *this。

42 forward_list::splice_after 移动版本

将 forward_listx*this中的所有元素转移到,使用移动语义。

43 forward_list::splice_after 单个元素

将迭代器i指向的元素从 forward_listx转移到*this.

44 forward_list::splice_after 单个元素移动版本

将迭代器i指向的元素从 forward_listx转移到*this中的所有元素转移到,使用移动语义。

45 forward_list::splice_after 范围版本

指向的元素转移到firstlastx*this.

46 forward_list::splice 范围和移动版本

指向的元素转移到firstlastx*this中的所有元素转移到,使用移动语义。

47 forward_list::swap

交换 forward_list 的内容与另一个 forward_list 的内容x.

48 forward_list::unique

从 forward_list 中删除所有连续的重复元素。

49 forward_list::unique

从 forward_list 中删除所有连续的重复元素。

非成员重载函数

序号 方法 & 描述
1 operator==

测试两个 forward_list 是否相等。

2 operator!=

测试两个 forward_list 是否相等。

3 operator<

测试第一个 forward_list 是否小于另一个。

4 operator<=

测试第一个 forward_list 是否小于或等于另一个。

5 operator>

测试第一个 forward_list 是否大于另一个。

6 operator>=

测试第一个 forward_list 是否大于或等于另一个。

7 swap

交换两个 forward_list 的内容。

广告