如果我们需要向 STL 中的 deque 容器添加元素有四种方法,即,使用 push_back 方法、使用 push_front 方法、使用 emplace_back 方法和使用 emplace_front 方法。
成员函数 | 功能 |
---|---|
push_back() | 在容器现有元素的尾部添加一个元素,和 emplace_back() 不同,该函数添加新元素的过程是,先构造元素,然后再将该元素移动或复制到容器的尾部。 |
push_front() | 在容器现有元素的头部添加一个元素,和 emplace_back() 不同,该函数添加新元素的过程是,先构造元素,然后再将该元素移动或复制到容器的头部。 |
emplace_back() | C++ 11 新添加的成员函数,其功能是在容器尾部生成一个元素。和 push_back() 不同,该函数直接在容器头部构造元素,省去了复制或移动元素的过程。 |
emplace_front() | C++ 11 新添加的成员函数,其功能是在容器头部生成一个元素。和 push_front() 不同,该函数直接在容器头部构造元素,省去了复制或移动元素的过程。 |
使用 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
,如下图所示:
我们看到,我们使用了 push_back 将元素添加到了 deque 的结尾。
使用 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
,如下图所示:
我们看到,我们使用了 emplace_back 将元素添加到了 deque 的结尾。
使用 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
,如下图所示:
我们看到,我们使用了 push_front 将元素添加到了 deque 的开始。
使用 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
,如下图所示:
我们看到,我们使用了 emplace_front 将元素添加到了 deque 的开始。
如果我们需要向 STL 中的 deque 容器添加元素有四种方法,即,使用 push_back 方法、使用 push_front 方法、使用 emplace_back 方法和使用 emplace_front 方法。