std::forward_list
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    |   定义于头文件  <forward_list>
  | 
||
|   template<     class T,  | 
(1) | (C++11 起) | 
|   namespace pmr {     template <class T>  | 
(2) | (C++17 起) | 
std::forward_list 是支持从容器中的任何位置快速插入和移除元素的容器。不支持快速随机访问。它实现为单链表,且实质上与其在 C 中实现相比无任何开销。与 std::list 相比,此容器在不需要双向迭代时提供更有效地利用空间的存储。
在链表内或跨数个链表添加、移除和移动元素,不会非法化当前指代链表中其他元素的迭代器。然而,在从链表移除元素(通过 erase_after )时,指代对应元素的迭代器或引用会被非法化。
std::forward_list 满足容器 (Container) (除了 operator== 的复杂度始终为线性和 size 函数)、知分配器容器 (AllocatorAwareContainer) 和序列容器 (SequenceContainer) 的要求。
模板形参
| T | - |   元素的类型。
 
  | ||||
| Allocator | - | 用于获取/释放内存及构造/析构内存中元素的分配器。类型必须满足分配器 (Allocator) 的要求。若 Allocator::value_type 与 T 不同则行为未定义 (C++20 前)程序非良构 (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) | 
  const_iterator
 | 
常向前迭代器 | 
成员函数
  构造 forward_list (公开成员函数)  | |
  析构 forward_list (公开成员函数)  | |
|    赋值给容器   (公开成员函数)  | |
|    将值赋给容器   (公开成员函数)  | |
|    返回相关的分配器   (公开成员函数)  | |
 元素访问 | |
|   访问第一个元素  (公开成员函数)  | |
 迭代器 | |
|    返回指向第一个元素之前迭代器   (公开成员函数)  | |
|    返回指向起始的迭代器   (公开成员函数)  | |
|    返回指向末尾的迭代器   (公开成员函数)  | |
 容量 | |
|    检查容器是否为空   (公开成员函数)  | |
|   返回可容纳的最大元素数  (公开成员函数)  | |
 修改器 | |
|   清除内容  (公开成员函数)  | |
|    在某个元素后插入新元素   (公开成员函数)  | |
|   在元素后原位构造元素  (公开成员函数)  | |
|   擦除元素后的元素  (公开成员函数)  | |
|   插入元素到容器起始  (公开成员函数)  | |
|    在容器头部就地构造元素   (公开成员函数)  | |
|   移除首元素  (公开成员函数)  | |
|    改变容器中可存储元素的个数   (公开成员函数)  | |
|    交换内容   (公开成员函数)  | |
 操作 | |
|    合并二个已排序列表  (公开成员函数)  | |
  从另一 forward_list 移动元素 (公开成员函数)  | |
|   移除满足特定标准的元素  (公开成员函数)  | |
|    将该链表的所有元素的顺序反转  (公开成员函数)  | |
|    删除连续的重复元素  (公开成员函数)  | |
|    对元素进行排序  (公开成员函数)  | |
非成员函数
|    (C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20)  | 
   按照字典顺序比较 forward_list 中的值  (函数模板)  | 
|    (C++11)  | 
   特化 std::swap 算法  (函数模板)  | 
|   擦除所有满足特定判别标准的元素  (函数模板)  |