跳到主要内容

std::forward_list before_begin()/cbefore_begin() 方法

// Non-const version
iterator begin() noexcept;

// Const version
const_iterator begin() const noexcept;
const_iterator cbegin() const noexcept;

返回指向数组末尾之后元素的迭代器指向容器第一个元素之前的元素。

未定义行为

此元素充当占位符,尝试访问它会导致未定义行为

.

唯一的用法是出现在函数insert_after()emplace_after()erase_after()splice_after()和递增运算符中:递增 before-begin 迭代器会得到与 begin/cbegin() 相同的迭代器。

参数

(无)

返回值

指向第一个元素之前的元素的迭代器。

复杂度

常数 - O(1)

before_begin 和 cbefore_begin 之间的区别

对于 const 容器 cbefore_begincbefore_begin 是相同的 - c.before_begin() == c.cbefore_begin()

对于非常量类型c的容器,它们返回不同的迭代器

#include <forward_list>

int main()
{
std::forward_list<int> arr = {1, 2, 3, 4, 5};
auto it = arr.before_begin(); // Type: std::forward_list<int>::iterator
*std::next(it) = 5; // ✔ Ok
}

示例

重要

本节需要改进。您可以通过编辑此文档页面来帮助我们。

本文源自此 CppReference 页面。为了改进或编辑偏好,它可能已被修改。点击“编辑此页”以查看对此文档所做的所有更改。
悬停查看原始许可证。

std::forward_list before_begin()/cbefore_begin() 方法

// Non-const version
iterator begin() noexcept;

// Const version
const_iterator begin() const noexcept;
const_iterator cbegin() const noexcept;

返回指向数组末尾之后元素的迭代器指向容器第一个元素之前的元素。

未定义行为

此元素充当占位符,尝试访问它会导致未定义行为

.

唯一的用法是出现在函数insert_after()emplace_after()erase_after()splice_after()和递增运算符中:递增 before-begin 迭代器会得到与 begin/cbegin() 相同的迭代器。

参数

(无)

返回值

指向第一个元素之前的元素的迭代器。

复杂度

常数 - O(1)

before_begin 和 cbefore_begin 之间的区别

对于 const 容器 cbefore_begincbefore_begin 是相同的 - c.before_begin() == c.cbefore_begin()

对于非常量类型c的容器,它们返回不同的迭代器

#include <forward_list>

int main()
{
std::forward_list<int> arr = {1, 2, 3, 4, 5};
auto it = arr.before_begin(); // Type: std::forward_list<int>::iterator
*std::next(it) = 5; // ✔ Ok
}

示例

重要

本节需要改进。您可以通过编辑此文档页面来帮助我们。

本文源自此 CppReference 页面。为了改进或编辑偏好,它可能已被修改。点击“编辑此页”以查看对此文档所做的所有更改。
悬停查看原始许可证。