C++ STL 中的 forward_list assign() 函式


本任務旨在展示 C++ 中 forward_list assign() 函式的工作原理。

與普通的 list 保留下一個和前一個元素的連結不同,forward_list 只保留與下一個元素的連結,這有助於向前和向後迭代。但 forward_list 只能向前迭代。

forward_list::assign() 函式是 C++ 標準模板庫的一部分。它用於在 forward_list 中插入元素,如果列表已經包含一些元素,則它們會被使用者新增的新元素替換。

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

語法

此函式有 3 種語法。每種對應不同的方法:

  • Forward_list_name.assign(initializer_list);
  • Forward_list_name.assign(iterator itr1 , iterator itr2);
  • Forward_list_name.assign(count, value);

引數

Initializer_list - 在第一種情況下,forward_list 獲取作為初始化列表傳遞給它的值,順序完全相同。

Iterator - 在第二種情況下,forward_list 獲取迭代器 itr1 和 itr2 指向的值之間的值。這也包括 itr1 指向的值,但不包括 itr2 指向的值。

count 和 value - 在第三種情況下,引數“count”指的是要插入到 forward_list 中的元素數量,“value”指的是要分配給每個元素的值。

position,表示要放置新元素的位置,value,表示要插入到列表中的元素。

返回值

該函式不返回值。

示例

Input: assign(5,1)
Output: 1 1 1 1 1

解釋 -

這裡我們建立了一個 int 型別的 forward_list “Lt”。然後我們使用 assign 函式使用引數 countvalue 為列表賦值。

這將列表“Lt”分配了 5 個元素,每個元素的值為 1,生成了輸出 1 1 1 1 1。

下面程式中使用的步驟如下:

  • 首先建立三個 int 型別的 forward_list,假設為“Lt1”、“Lt2”和“Lt3”。
  • 然後使用 assign() 函式為 Lt1 分配元素,將初始化列表作為引數傳遞。
  • 然後使用 assign 函式為 Lt2 分配元素,將 count 和 value 作為引數傳遞。
  • 然後使用 assign 函式為 Lt3 分配元素,將兩個迭代器作為引數傳遞,假設分別指向列表 Lt1 的初始位置和最終位置。

演算法

Start
Step 1->In function main()
   Declare forward_lists<int> Lt1,Lt2,Lt3
   Call Lt1.assign(initialize list)
   Call Lt2.assign(count,value)
   Call Lt3.assign(L1.begin(),Lt2.end())
Stop

示例

 線上演示

#include <forward_list>
#include <iostream>
using namespace std;
int main() {
   forward_list<int> Lt1;
   forward_list<int> Lt2;
   forward_list<int> Lt3;
   //assigning elements to Lt1
   Lt1.assign({4,9,7,8});
   //assigning elements to Lt2
   Lt2.assign(3,6);
   //assigning elements to Lt2
   Lt3.assign(Lt1.begin(),Lt1.end());
   // Display the lists
   cout << "Lt1: ";
   for (int& D : Lt1)
      cout << D << " ";
      cout << endl;
   // Display Lt2
      cout << "Lt2: ";
      for (int& D : Lt2)
         cout << D << " ";
   // Display Lt3
      cout << "Lt3: ";
      for (int& D : Lt3)
         cout << D << " ";
   return 0;
}

輸出

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

Lt1: 4 9 7 8
Lt2: 6 6 6
Lt3: 4 9 7 8

更新於:2020 年 1 月 20 日

220 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.