C++ STL 中的 forward_list emplace_after() 和 emplace_front()


本任務旨在展示 c++ 中 forward_list::emplace_after() 和 forward_list::emplace_front() 函式的工作原理。

與普通的列表不同,forward_list 只維護與下一個元素的連結,而普通列表則同時維護與下一個和上一個元素的連結,這使得可以在兩個方向上進行迭代。但 forward_list 只能向前迭代。

forward_list::emplace_after() 和 forward_list::emplace_front() 函式是 c++ 標準庫的一部分。

forward_list::emplace_after() 函式用於在列表中指定位置的元素之後插入一個新元素。

forward_list::emplace_front() 函式用於在列表的開頭插入一個元素。

需要包含 <forward_list> 標頭檔案才能呼叫該函式。

forward_list::emplace_after()

語法

Forward_List_Name.emplace_after(iterator , element);

引數

該函式接受兩個引數:

**迭代器**,迭代器包含要放置新元素的位置。

**元素**,它包含要放置的元素。

返回值

該函式返回一個迭代器,該迭代器指向已放置在 forward list 中的新元素。

forward_list::emplace_front()

語法

Forward_List_Name.emplace_front(element);

引數

該函式接受一個引數。

返回值

該函式不返回任何值。

示例

Input: 11,34,56
Output: 41 11 34 56

**解釋** -

這裡我們建立了一個包含元素 11、34、56 的 forward list Lt。然後我們呼叫了 emplace_front() 函式,該函式用於在 forward list 的開頭插入一個新元素,這裡該元素為 41。

因此,當我們列印 forward list 時,生成的輸出為 41 11 34 56,第一個元素為 41。

**以下程式中使用的步驟如下:**

  • 首先建立一個列表,例如名為“Lt”的 int 型別列表,併為其分配一些值。
  • 然後呼叫函式 emplace_front() 將一個新元素放置在列表的開頭。
  • 然後建立一個 auto 型別的物件,例如“itr”,它將用作我們的迭代器以儲存要傳遞給 emplace_after() 函式的位置,新元素將放置在其旁邊。為 itr 指定一個位置,例如列表的末尾。
  • 然後呼叫 emplace_after() 函式在指定位置插入元素。第一個引數應該是迭代器“itr”,它指定列表中的位置,第二個引數應該是要放置在該位置的元素。

演算法

Start
Step 1->In function main()
   Initialize forward_list<int> Lt={}
   Call function Lt.emplace_front()
   Initialize auto itr=Lt.end();
   Call Lt.emplace_after(itr , element)
   End
Stop

示例

#include<iostream>
#include<list>
using namespace std;
int main() {
   forward_list<int> Lt = { 5,6,7,8 };
   //Using the emplace_front() function to place element at the beginning.
   Lt.emplace_front(3);
   auto itr = Lt.end();
   /*Using the emplace_after() function to place an element after the location specified*/
   Lt.emplace_after(itr , 10)
   //Displaying the list
   for(auto itr = Lt.begin() ; itr!=Lt.end ; itr++)
   cout<<” *itr ”<<” ”;
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

3 5 6 7 8 10

更新於:2020年1月20日

126 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告