C ++ STL中的转发列表Assign()函数

给出的任务是显示C ++中forward_list Assign()函数的工作。

与正常列表不同,forward_list仅保持与下一个元素的链接,而普通列表不与下一个以及前面的元素保持链接,这有助于向前和向后的迭代。但是forward_list只能在向前方向上进行迭代。

forward_list::assign()函数是C ++标准模板库的一部分。它用于在向前列表中插入元素,如果列表中已经包含一些元素,则将其替换为用户添加的新元素。

应该包含<forward_list>头文件才能调用此函数。

语法

此功能有3种语法。每种都有不同的方法-

  • Forward_list_name.assign(initializer_list);

  • Forward_list_name.assign(迭代器itr1,迭代器itr2);

  • Forward_list_name.assign(count,value);

参数

Initializer_list-在第一种情况下,前向列表以完全相同的顺序获取作为初始化列表传递给它的值。

迭代器-在第二种情况下,前向列表获取包含在迭代器itr1和itr2指向的值之间的值。这还包括itr1指向的值,而不是itr2指向的值。

计数和值-在第三种情况下,参数“计数”是指要在转发列表中插入的元素数,“值”是指必须分配给每个元素的值。

position,代表必须放置新元素的位置和value,代表必须插入列表中的元素。

返回值

该函数不返回任何值。

示例

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

解释-

在这里,我们创建了一个int类型的前向列表“ Lt”。然后,我们使用assign函数使用参数countvalue将值分配给列表。

这样就为列表“ Lt”分配了5个元素,每个元素都具有值1,从而生成了输出1 1 1 1 1。

以下程序中使用的方法如下-

  • 首先创建int类型的三个前向列表,让我们说“ Lt1”,“ Lt2”和“ Lt3”。

  • 然后使用assign()函数通过初始化器列表作为参数将元素分配给Lt1。

  • 然后使用assign函数将元素传递给Lt2,并将传递的计数和值作为参数。

  • 然后使用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