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