📅  最后修改于: 2023-12-03 14:39:51.838000             🧑  作者: Mango
在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()
函数获取一个常量迭代器作为插入位置。