给出的任务是显示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