📌  相关文章
📜  C++ STL中的forward_list :: cbefore_begin()(1)

📅  最后修改于: 2023-12-03 14:39:51.838000             🧑  作者: Mango

C++ STL中的forward_list::cbefore_begin()

在C++ STL中,forward_list是一个单向链表容器,它支持前向迭代器,可以在线性时间内在其任何位置插入或删除元素。其成员函数cbefore_begin()是一个常量前向迭代器,指向第一个节点之前的位置,即链表头的前一个位置。

语法
const_iterator cbefore_begin() const noexcept;
参数

返回值

常量前向迭代器,指向第一个节点之前的位置。

示例
#include <iostream>
#include <forward_list>

int main()
{
    std::forward_list<int> list = { 1, 2, 3, 4, 5 };

    // 使用cbefore_begin()在链表头之前插入元素
    auto it = list.cbefore_begin();
    list.insert_after(it, 0);

    for (auto& x : list)
        std::cout << x << " ";
    std::cout << std::endl;

    return 0;
}

输出:

0 1 2 3 4 5

在上面的示例中,使用cbefore_begin()获取指向链表头之前位置的常量迭代器,并使用insert_after()函数在其后插入一个新元素0,最后打印整个链表的元素。

注意事项
  • cbefore_begin()返回的是一个常量迭代器,不允许修改链表中的元素。
  • 在使用insert_after()在链表中插入元素时,必须提供一个常量迭代器作为插入位置。可以使用cbefore_begin()函数获取一个常量迭代器作为插入位置。