C++ STL 中的 forward_list::cbefore_begin()
本任务演示 C++ 中 forward_list::cbefore_begin() 函数的工作原理。
与保持与下一个和上一个元素链接的普通列表不同,forward_list 只保持与下一个元素的链接,这有助于双向迭代。但 forward_list 只能向前迭代。
forward_list::cbefore_begin() 函数是 C++ 标准模板库的一部分。它用于获取列表第一个元素之前的 位置。
需要包含 `
语法
Forward_List_Name.cbefore_begin();
参数
此函数不接受任何参数。
返回值
该函数返回一个指向 forward_list 的第一个元素之前位置的常量迭代器。
示例
Input: 8, 9, 32, 21 Output: 56 8 9 32 21
解释 − 这里我们创建了一个包含元素 8、9、32、21 的 forward list。然后我们调用了 cbefore_begin() 函数,该函数指向列表第一个元素之前的 位置并将该位置存储在迭代器 itr 中。然后我们使用 insert_after() 函数在第一个元素(即 8)之前插入元素 56。因此,当我们打印它时,生成的输出为 56 8 9 32 21,这表明 56 被放在了列表的开头,因此 cbefore_begin() 函数工作正常。
下面程序中使用的步骤如下: −
- 首先创建一个 forward_list,例如名为“Lt”的 int 类型 forward_list 并为其赋值。
- 然后创建一个 auto 类型的对象“itr”,并在其中存储调用 cbefore_begin() 函数返回的迭代器。
- 然后使用 insert_after() 函数在列表开头插入一个新元素。将迭代器“itr”作为第一个参数,将要插入的数字作为第二个参数。
- 然后启动一个 For 循环来打印列表。
- 然后在 for 循环内创建一个 auto 类型的对象“itr”来接收 end() 和 begin() 函数的返回值。使用 begin() 函数为“itr”赋予列表的第一个元素。
- 然后使用 cend() 函数编写“itr”不等于列表的最后一个元素,从而指定 for 循环的终止条件。
- 打印 *itr。
算法
Start
Step 1->In function main()
Initialize forward_list<int> Lt={}
Initialize auto itr= Lt.cbefore_begin()
Call insert_after(itr, new_element)
Loop For auto itr = Ltcbegin() and itr != Lt.end() and itr++
Print *itr
End
Stop示例
#include<iostream>
#include<forward_list>
using namespace std;
int main() {
forward_list<int> Lt = { 40, 55, 67, 89 };
auto itr = Lt.cbefore_begin();
Lt.insert_after(itr, 77);
for (auto itr = Lt.begin(); it != Lt.end(); ++itr)
cout << *itr << " ";
return 0;
}输出
如果我们运行上面的代码,它将生成以下输出:
77 40 55 67 89
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP