STL deque添加元素

STL deque添加元素教程

如果我们需要向 STL 中的 deque 容器添加元素有四种方法,即,使用 push_back 方法、使用 push_front 方法、使用 emplace_back 方法和使用 emplace_front 方法。

STL deque添加元素详解

成员函数 功能
push_back() 在容器现有元素的尾部添加一个元素,和 emplace_back() 不同,该函数添加新元素的过程是,先构造元素,然后再将该元素移动或复制到容器的尾部。
push_front() 在容器现有元素的头部添加一个元素,和 emplace_back() 不同,该函数添加新元素的过程是,先构造元素,然后再将该元素移动或复制到容器的头部。
emplace_back() C++ 11 新添加的成员函数,其功能是在容器尾部生成一个元素。和 push_back() 不同,该函数直接在容器头部构造元素,省去了复制或移动元素的过程。
emplace_front() C++ 11 新添加的成员函数,其功能是在容器头部生成一个元素。和 push_front() 不同,该函数直接在容器头部构造元素,省去了复制或移动元素的过程。

案例

push_back添加元素

使用 push_back 给 deque 追加元素

#include <iostream> #include <deque> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> vec; vec.push_back("HaiCoder"); vec.push_back("www.haicoder.net"); for (auto&& value : vec) { cout << "Val = " << value << endl; } return 0; }

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

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

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

49_C STL deque添加元素.png

我们看到,我们使用了 push_back 将元素添加到了 deque 的结尾。

emplace_back添加元素

使用 emplace_back 给 deque 追加元素

#include <iostream> #include <deque> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> vec; vec.emplace_back("HaiCoder"); vec.emplace_back("www.haicoder.net"); for (auto&& value : vec) { cout << "Val = " << value << endl; } return 0; }

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

50_C STL deque添加元素.png

我们看到,我们使用了 emplace_back 将元素添加到了 deque 的结尾。

push_front添加元素

使用 push_front 给 deque 追加元素

#include <iostream> #include <deque> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> vec; vec.push_front("HaiCoder"); vec.push_front("www.haicoder.net"); for (auto&& value : vec) { cout << "Val = " << value << endl; } return 0; }

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

51_C STL deque添加元素.png

我们看到,我们使用了 push_front 将元素添加到了 deque 的开始。

emplace_front添加元素

使用 emplace_front 给 deque 追加元素

#include <iostream> #include <deque> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; deque<string> vec; vec.emplace_front("HaiCoder"); vec.emplace_front("www.haicoder.net"); for (auto&& value : vec) { cout << "Val = " << value << endl; } return 0; }

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

51_C STL deque添加元素.png

我们看到,我们使用了 emplace_front 将元素添加到了 deque 的开始。

STL deque添加元素总结

如果我们需要向 STL 中的 deque 容器添加元素有四种方法,即,使用 push_back 方法、使用 push_front 方法、使用 emplace_back 方法和使用 emplace_front 方法。