C++ Library - <forward_list>
介绍 (Introduction)
forward_list是一种常用的序列容器。 Container是一个保存相同类型数据的对象。 forward_list容器实现为单链接列表,因此它提供对其数据的单向顺序访问。
forward_list不提供快速随机访问,它仅支持仅在一个方向上的顺序访问。 forward_list允许在一个序列内的任何地方以恒定时间进行插入和删除操作。
forward_list的元素可以分散在不同的内存块中。 容器存储必要的信息以允许顺序访问它的数据。 forward_lists可以在运行时根据需要从两端收缩或扩展。 内部分配器自动满足存储要求。
零大小的forward_lists也是有效的。 在这种情况下,forward_list.begin()和forward_list.end()指向同一位置。 但是调用front()的行为是未定义的。
定义 (Definition)
下面是
template < class T, class Alloc = allocator<T> > class forward_list;
参数 (Parameters)
T - 包含的元素的类型。
T可以由包括用户定义类型的任何其他数据类型代替。
Alloc - 分配器对象的类型。
默认情况下,使用allocator类模板,该模板定义最简单的内存分配模型,并且与值无关。
成员类型 (Member types)
以下成员类型可以用作参数或按成员函数返回类型。
Sr.No. | 会员类型 | 定义 |
---|---|---|
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 |
来自的函数
以下是
构造函数 (Constructors)
Sr.No. | 方法和描述 |
---|---|
1 | forward_list::forward_list 默认构造函数 构造一个零元素的空forward_list。 |
2 | forward_list::forward_list 填充构造函数 构造一个包含n个元素的新forward_list,并为forward_list的每个元素分配val 。 |
3 | forward_list::forward_list 填充构造函数 构造一个包含n个元素的新forward_list,并为forward_list的每个元素赋值。 |
4 | forward_list::forward_list 范围构造函数 构造一个forward_list,其中包含从头到尾范围内的元素。 |
5 | forward_list::forward_list 复制构造函数 构造一个forward_list,其中包含现有列表中存在的每个元素的副本。 |
6 | forward_list::forward_list 移动构造函数 使用move语义构造一个带有其他内容的forward_list。 |
7 | forward_list::forward_list 初始化列表构造函数 从初始化列表构造forward_list。 |
Destructor
Sr.No. | 方法和描述 |
---|---|
1 | forward_list::~forward_list 通过释放它的内存来销毁forward_list对象。 |
成员函数 (Member functions)
Sr.No. | 方法和描述 |
---|---|
1 | forward_list::assign range version 通过替换旧值为forward_list分配新值。 |
2 | forward_list::assign fill version 通过替换旧值为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 构造并在forward_list中的位置之后插入新元素,并将forward_list的大小增加1。 |
11 | forward_list::emplace_front 在forward_list的开头插入新元素,并将forward_list的大小增加1。 |
12 | forward_list::empty 测试forward_list是否为空。 |
13 | forward_list::end 返回一个随机访问迭代器,它指向forward_list的最后一个元素。 |
14 | forward_list::erase_after 位置版本 从forward_list中删除位置之后的单个元素。 |
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中的位置之后插入新元素来扩展迭代器 |
19 | forward_list::insert_after 移动版本 通过在forward_list中的位置之后插入新元素来扩展迭代器 |
20 | forward_list::insert_after 填充版本 通过在forward_list中的位置之后插入新元素来扩展迭代器 |
21 | forward_list::insert_after 范围版本 通过在forward_list中的位置之后插入新元素来扩展迭代器 |
22 | forward_list::insert_after 初始化列表版本 通过在forward_list中的位置之后插入新元素来扩展迭代器 |
23 | forward_list::max_size 返回forward_list可以保存的最大元素数。 |
24 | forward_list::merge 将两个已排序的forward_lists合并为一个。 |
25 | forward_list::merge 移动版本 将两个已排序的forward_lists合并为一个。 |
26 | forward_list::merge 比较函数 将两个已排序的forward_lists合并为一个。 |
27 | forward_list::merge 比较函数移动版本 通过使用移动语义将两个已排序的forward_lists合并为一个。 |
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 compare函数 对forward_list的元素进行排序。 |
41 | forward_list::splice_after 将所有元素从forward_list转移到* this。 |
42 | forward_list::splice_after 移动版本 通过使用移动语义将所有元素从forward_list x转移到* this 。 |
43 | forward_list::splice_after 单个元素 将iterator i指向的元素从forward_list x传输到* this 。 |
44 | forward_list::splice_after 单个元素移动版本 通过使用移动语义将迭代器i指向的元素从forward_list x传输到* this 。 |
45 | forward_list::splice_after 范围版本 传输从x到*的第一个到最后一个范围内的元素。 |
46 | forward_list::splice range和move version 通过使用移动语义,将从x到*的第一个到最后一个范围内的元素转移到此 。 |
47 | forward_list::swap 使用另一个forward_list x的内容交换forward_list的内容。 |
48 | forward_list::unique 从forward_list中删除所有连续的重复元素。 |
49 | forward_list::unique 从forward_list中删除所有连续的重复元素。 |
非成员重载函数 (Non-member overloaded functions)
Sr.No. | 方法和描述 |
---|---|
1 | operator== 测试两个forward_lists是否相等。 |
2 | operator!= 测试两个forward_lists是否相等。 |
3 | operator< 测试第一个forward_list是否小于其他。 |
4 | operator<= 测试第一个forward_list是否小于或等于其他。 |
5 | operator> 测试第一个forward_list是否大于其他。 |
6 | operator>= 测试第一个forward_list是否大于或等于other。 |
7 | swap 交换两个forward_list的内容。 |