![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
std::forward_list
文章平均质量分 92
std::forward_list 是支持从容器中的任何位置快速插入和移除元素的容器。不支持快速随机访问。它实现为单链表,且实质上与其在 C 中实现相比无任何开销。与 std::list 相比,此容器提在不需要双向迭代时提供更有效地利用空间的存储。
繁星璀璨G
单身,求对象
展开
-
c++11 标准模板(STL)(std::forward_list)(十三)
从另一 forward_list 移动元素到 *this 。逆转容器中的元素顺序。不非法化任何引用或迭代器。从容器移除所有相继的重复元素。只留下相等元素组中的第一个元素。第一版本用 operator== 比较元素,第二版本用二元谓词 p 比较元素。以升序排序元素。保持相等元素的顺序。第一版本用 operator< 比较元素,第二版本用给定的比较函数 comp 。原创 2023-01-29 08:30:00 · 440 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(十二)
从另一 forward_list 移动元素到 *this 。1) 从 other 移动所有元素到 *this 。2) 从 other 移动后随 it 的迭代器所指向的元素到 *this 。3) 从 other 移动范围 (first, last) 中的元素到 *this 。原创 2023-01-28 08:30:00 · 608 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(十一)
归并二个已排序链表为一个。链表应以升序排序。不复制元素。操作后容器 other 变为空。若 other 与 *this 指代同一对象则函数不做任何事。此操作是稳定的:对于二个链表中的等价元素,来自 *this 的元素始终前驱来自 other 的元素,而且 *this 和 other 的等价元素顺序不更改。原创 2023-01-27 15:46:48 · 786 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(十)
前附给定元素 value 到容器起始。没有引用和迭代器被非法化。插入新元素到容器起始。通过 std::allocator_traits::construct 构造元素,它典型地用布置 new 在容器所提供的位置原位构造元素。将参数 args... 作为 std::forward(args)... 转发给构造函数。没有引用和迭代器被非法化。逆转容器中的元素顺序。不非法化任何引用或迭代器。原创 2023-01-17 08:30:00 · 574 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(九)
从容器移除指定元素。1) 移除后随 pos 的元素。2) 移除范围 (first; last) 中的元素。移除容器首元素。若容器中无元素,则行为未定义。指向被擦除元素的迭代器和引用被非法化。将内容与 other 的交换。不在单个元素上调用任何移动、复制或交换操作。所有迭代器和引用保持合法。在操作后,保有此容器中尾后值的迭代器指代此容器或另一容器是未指定的。原创 2023-01-16 08:30:00 · 673 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(八)
在容器中的指定位置后插入新元素。原位构造元素,即不进行复制或移动操作。准确地以与提供给函数者相同的参数调用元素的构造函数。从容器擦除所有元素。此调用后 size() 返回零。重设容器大小以容纳 count 个元素。若当前大小大于 count ,则减小容器为其首 count 个元素。若当前大小小于 count ,1) 则后附额外的默认插入的元素2) 则后附额外的 value 的副本原创 2023-01-15 08:30:00 · 663 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(七)
在容器中的指定位置后插入元素。1-2) 在 pos 所指向的元素后插入 value3) 在 pos 所指向的元素后插入 value 的 count 个副本4) 在 pos 所指向的元素后插入来自范围 [first, last) 的元素。 若 first 与 last 是指向 *this 中的迭代器则行为未定义。5) 插入来自 initializer_list ilist 的元素。没有引用和迭代器被非法化。原创 2023-01-14 08:30:00 · 911 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(六)
检查容器是否无元素,即是否 begin() == end() 。返回根据系统或库实现限制的容器可保有的元素最大数量,即对于最大容器的 std::distance(begin(), end()) 。原创 2023-01-13 08:30:00 · 563 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(五)
返回指向首元素前一元素的迭代器。此元素表现为占位符,试图访问它会导致未定义行为。返回指向容器首元素的迭代器。若容器为空,则返回的迭代器将等于 end() 。返回指向容器末元素后一元素的迭代器。此元素表现为占位符;试图访问它导致未定义行为。原创 2023-01-12 08:30:00 · 525 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(四)
替换容器的内容。1) 以 count 份 value 的副本替换内容。2) 以范围 [first, last) 中元素的副本替换内容。3) 以来自 initializer_list ilist 的元素替换内容。返回到容器首元素的引用。在空容器上对 front 的调用是未定义的。原创 2023-01-11 08:30:00 · 398 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(三)
1) 复制赋值运算符。以 other 的副本替换内容。2) 移动赋值运算符。用移动语义以 other 的内容替换内容(即从 other 移动 other 中的数据到此容器)。3) 以 initializer_list ilist 所标识者替换内容。原创 2023-01-10 08:30:00 · 663 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(二)
从各种数据源构造新容器,可选地使用用户提供的分配器 alloc 。1) 默认构造函数。构造拥有默认构造的分配器的空容器。2) 构造拥有给定分配器 alloc 的空容器。3) 构造拥有 count 个有值 value 的元素的容器。4) 构造拥有个 count 默认插入的 T 实例的容器。不进行复制。5) 构造拥有范围 [first, last) 内容的容器。 6) 复制构造函数。构造拥有 other 内容的容器。7) 移动构造函数。用移动语义构造拥有 other 内容的容器。原创 2023-01-09 08:30:00 · 617 阅读 · 0 评论 -
c++11 标准模板(STL)(std::forward_list)(一)
std::forward_list 是支持从容器中的任何位置快速插入和移除元素的容器。不支持快速随机访问。它实现为单链表,且实质上与其在 C 中实现相比无任何开销。与 std::list 相比,此容器提在不需要双向迭代时提供更有效地利用空间的存储。原创 2023-01-08 08:30:00 · 549 阅读 · 0 评论