std:: forward_list
|
定义于头文件
<forward_list>
|
||
|
template
<
class
T,
|
(1) | (C++11 起) |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (C++17 起) |
std::forward_list
是一种支持在容器任意位置快速插入和删除元素的容器。不支持快速随机访问。它被实现为单向链表。与
std::list
相比,在不需要双向迭代时,该容器能提供更节省空间的存储方式。
在列表内或跨多个列表添加、删除和移动元素时,不会使当前指向列表中其他元素的迭代器失效。然而,当相应元素从列表中移除时(通过 erase_after ),指向该元素的迭代器或引用将失效。
std::forward_list
满足
容器
(除
size
成员函数以及
operator==
的复杂度始终为线性外)、
分配器感知容器
和
顺序容器
的要求。
std::forward_list
的所有成员函数都是
constexpr
:可以在常量表达式求值中创建和使用
std::forward_list
对象。
然而,
|
(since C++26) |
目录 |
模板参数
| T | - |
元素类型。
|
||||||||||||
| Allocator | - |
用于获取/释放内存及在其中构造/销毁元素的分配器。该类型必须满足
Allocator
要求。
若
Allocator::value_type
与
T
不同则行为未定义
(C++20 前)
若
Allocator::value_type
与
T
不同则程序非良构
(C++20 起)
。
|
成员类型
| 成员类型 | 定义 |
value_type
|
T
|
allocator_type
|
Allocator
|
size_type
|
无符号整数类型(通常为 std::size_t ) |
difference_type
|
有符号整数类型(通常为 std::ptrdiff_t ) |
reference
|
value_type & |
const_reference
|
const value_type & |
pointer
|
std:: allocator_traits < Allocator > :: pointer |
const_pointer
|
std:: allocator_traits < Allocator > :: const_pointer |
iterator
|
LegacyForwardIterator
和
ConstexprIterator
(since C++26)
指向
value_type
|
const_iterator
|
LegacyForwardIterator 和 ConstexprIterator (since C++26) 指向 const value_type |
成员函数
构造
forward_list
(公开成员函数) |
|
析构
forward_list
(公开成员函数) |
|
|
为容器赋值
(公开成员函数) |
|
|
为容器赋值
(公开成员函数) |
|
|
(C++23)
|
为容器赋值一个值范围
(公开成员函数) |
|
返回关联的分配器
(公开成员函数) |
|
元素访问 |
|
|
访问第一个元素
(公开成员函数) |
|
迭代器 |
|
|
返回到起始元素之前的迭代器
(公开成员函数) |
|
|
返回到起始位置的迭代器
(公开成员函数) |
|
|
返回到末尾位置的迭代器
(公开成员函数) |
|
容量 |
|
|
检查容器是否为空
(公开成员函数) |
|
|
返回可容纳的最大元素数
(公开成员函数) |
|
修改器 |
|
|
清除内容
(公开成员函数) |
|
|
在元素后插入元素
(公开成员函数) |
|
|
在元素后原位构造元素
(公开成员函数) |
|
|
(C++23)
|
在元素后插入元素范围
(公开成员函数) |
|
擦除元素后的元素
(公开成员函数) |
|
|
在起始位置插入元素
(公开成员函数) |
|
|
在起始位置原位构造元素
(公开成员函数) |
|
|
(C++23)
|
在起始位置添加元素范围
(公开成员函数) |
|
移除第一个元素
(公开成员函数) |
|
|
改变存储的元素数量
(公开成员函数) |
|
|
</div
|
|
非成员函数
|
(C++11)
(C++11)
(removed in C++20)
(C++11)
(removed in C++20)
(C++11)
(removed in C++20)
(C++11)
(removed in C++20)
(C++11)
(removed in C++20)
(C++20)
|
按字典序比较两个
forward_list
的值
(函数模板) |
|
(C++11)
|
特化
std::swap
算法
(函数模板) |
|
擦除所有满足特定条件的元素
(函数模板) |
推导指引 |
(C++17 起) |
注释
| 功能测试 宏 | 值 | 标准 | 功能 |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | 容器的范围构造与插入 |
__cpp_lib_constexpr_forward_list
|
202502L
|
(C++26) |
constexpr
std::forward_list
|
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
双向链表
(类模板) |