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);

参数

该函数接受两个参数-

Iterator,迭代器包含必须放置新元素的位置。

Element,它包含必须放置的元素。

返回值

该函数返回一个迭代器,该迭代器指向已放置在转发列表中的新元素。

forward_list::emplace_front()

语法

Forward_List_Name.emplace_front(element);

参数

该函数接受一个参数。

返回值

该函数不返回任何内容。

示例

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

说明-

在这里,我们创建了一个包含元素11,34,56的转发列表Lt。然后我们调用了emplace_front()函数,该函数用于在前向列表的开头插入一个新元素,这里的元素为41。

因此,当我们打印转发列表时,生成的输出是41 11 34 56,其第一个元素为41。

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

  • 首先创建一个列表,让我们说int类型的“ Lt”并为其分配一些值。

  • 然后调用函数emplace_front()将新元素放置在列表的开头。

  • 然后创建一个类型为auto的对象,让我们说“ itr”,它将作为我们的迭代器来存储要传递到emplace_after()位置的位置,接下来将放置我们的新元素。给它一个位置,让我们说,列表的末尾。

  • 然后调用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 };
   //使用emplace_front()函数将元素放在开头。
   Lt.emplace_front(3);
   auto itr = Lt.end();
   /*使用emplace_after()函数将元素放置在指定的位置之后*/
   Lt.emplace_after(itr , 10)
   //显示列表
   for(auto itr = Lt.begin() ; itr!=Lt.end ; itr++)
   cout<<” *itr ”<<” ”;
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

3 5 6 7 8 10