给出的任务是显示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_Name.emplace_after(iterator , element);
该函数接受两个参数-
Iterator,迭代器包含必须放置新元素的位置。
Element,它包含必须放置的元素。
该函数返回一个迭代器,该迭代器指向已放置在转发列表中的新元素。
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