emplace_back
时间: 2023-06-21 16:09:55 浏览: 105
`emplace_back` 是 C++ 中 `vector` 容器提供的函数,用于在容器的末尾插入一个新元素。与 `push_back` 不同的是,`emplace_back` 可以在不创建临时对象的情况下直接构造新元素,从而提高效率。例如,如果我们有一个存储自定义类型 `Person` 的 `vector`,我们可以使用 `emplace_back` 来插入一个新的 `Person` 对象,而不必先创建一个临时对象:
```cpp
std::vector<Person> people;
people.emplace_back("Alice", 25);
```
这里的 `emplace_back` 会直接在 `people` 的末尾构造一个 `Person` 对象,参数为 `"Alice"` 和 `25`。这比先创建一个临时对象再使用 `push_back` 插入要更高效一些。
相关问题
vector emplace_back push_back
vector中的emplace_back和push_back都是向向量末尾插入一个元素的函数。emplace_back是在向量末尾插入一个构造函数的参数列表,然后在向量内部构造一个新元素;push_back则是在向量末尾插入一个已构造好的元素。不过,由于emplace_back可以直接在向量内部构造对象,所以通常会比push_back更高效。
emplace_back和push_back
emplace_back 是 C++ STL 中 vector 的一个成员函数,它可以在 vector 的末尾添加一个元素,并且可以在添加元素的同时进行构造。这意味着它可以避免一些额外的复制操作,从而提高性能。
push_back 是 STL 中 vector 的一个成员函数,它也是在 vector 的末尾添加一个元素,但是它只能添加已经存在的元素或对象的拷贝。
总的来说 emplace_back 是 push_back 的一种更高效的替代方案,因为它可以避免不必要的复制操作。
阅读全文