STL forward_list插入元素

STL forward_list插入元素教程

如果我们需要添向 STL 中的 forward_list 容器插入元素有三种方法,即,使用 insert_after 方法插入元素、使用 emplace_after 方法插入元素和使用 splice_after 方法插入元素。

STL forward_list插入元素详解

语法

语法格式 用法说明
insert_after 在指定位置之后插入一个新元素,并返回一个指向新元素的迭代器。
emplace_after 在指定位置之后插入一个新元素,并返回一个指向新元素的迭代器。和 insert_after() 的功能相同,但效率更高。
splice_after 将某个 forward_forward_list 容器中指定位置或区域内的元素插入到另一个容器的指定位置之后。

案例

forward_list insert_after插入元素

使用 insert_after 给 forward_list 插入元素

#include <iostream> #include <forward_list> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; forward_list<int> vec{1, 5}; vec.insert_after(vec.begin(), 3); for (auto&& value : vec) { cout << value << " "; } cout << endl; return 0; }

因为,这里需要使用 C++ 11,因此,我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ forward_list.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

93_C STL forward_list插入元素.png

我们看到,我们使用了 insert_after 将元素插入到了 forward_list 中。

forward_list emplace_after插入元素

使用 emplace_after 给 forward_list 插入元素

#include <iostream> #include <forward_list> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; forward_list<int> vec{1, 5}; vec.emplace_after(vec.begin(), 300); for (auto&& value : vec) { cout << value << " "; } cout << endl; return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

94_C STL forward_list插入元素.png

我们看到,我们使用了 emplace_after 将元素添加到了 forward_list 中。

forward_list splice插入元素

使用 splice 给 forward_list 插入元素

#include <iostream> #include <forward_list> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; forward_list<int> forward_list1{1, 2, 3, 4}, forward_list2{10, 20, 30}; forward_list<int>::iterator it = ++forward_list1.begin(); forward_list1.splice_after(it, forward_list2); for (auto iter = forward_list1.begin(); iter != forward_list1.end(); ++iter) { cout << *iter << " "; } cout << endl; return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

95_C STL forward_list插入元素.png

我们看到,我们使用了 splice_after 将元素添加到了 forward_list 中。

STL forward_list插入元素总结

如果我们需要添向 STL 中的 forward_list 容器插入元素有三种方法,即,使用 insert_after 方法插入元素、使用 emplace_after 方法插入元素和使用 splice_after 方法插入元素。