emplace_back方法
时间: 2023-10-14 08:25:18 浏览: 106
C++ 中”emplace_back” 与 “push_back” 的区别
`emplace_back` 是 C++ STL 中 `vector` 容器中的一个方法,用于在 `vector` 的末尾插入元素,与 `push_back` 方法类似。但是,`emplace_back` 方法可以直接在容器中构造新的元素,而不需要先创建一个临时对象再插入。这使得 `emplace_back` 方法比 `push_back` 方法更高效。
`emplace_back` 方法的语法如下:
```c++
template <class... Args>
void emplace_back(Args&&... args);
```
`Args` 是一个可变参数模板,可以接受任意个数和类型的参数。当调用 `emplace_back` 方法时,传递给该方法的参数将被用于构造新的元素,并将其插入到 `vector` 的末尾。
例如,假设我们有一个存储整数的 `vector`,我们可以使用 `emplace_back` 方法来直接构造新的整数元素,如下所示:
```c++
std::vector<int> vec;
vec.emplace_back(1);
vec.emplace_back(2);
vec.emplace_back(3);
```
这里,我们不需要像使用 `push_back` 方法那样先创建一个临时对象,而是直接传递整数值作为参数,`emplace_back` 方法会在 `vector` 中构造新的整数元素。
阅读全文