emplace_back()如何使用
时间: 2024-09-27 19:14:22 浏览: 32
C++ 中”emplace_back” 与 “push_back” 的区别
`emplace_back()`是C++标准库中一些容器(如`std::vector`, `std::list`, `std::deque`等)提供的成员函数,主要用于在容器的末尾高效地插入一个新元素。它的作用类似于`push_back()`,但是与`push_back()`不同的是,`emplace_back()`允许你在插入的同时进行构造操作,无需先创建临时对象再推入容器。
使用`emplace_back()`的基本语法通常是这样的:
```cpp
container_name.emplace_back(element_type arg1, element_type arg2, ...);
```
这里的`element_type`是你想要放入容器的元素类型,`arg1`, `arg2`, 等是要传给元素构造函数的参数。例如,假设你有一个`Person`对象,你可以这样做:
```cpp
Person person("Alice", 25);
std::vector<Person> people;
people.emplace_back(person); // 直接在末尾构造一个新的Person对象
```
这样做的优点是在向容器添加元素时,如果元素类型支持内联构造,`emplace_back()`可以避免多余的拷贝或移动操作,提高效率。
阅读全文