[CPP]push_back和emplace_back的区别

Posted wildkid1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CPP]push_back和emplace_back的区别相关的知识,希望对你有一定的参考价值。

emplace_back和push_back是cpp11的新特性之一,都是对vector内添加元素的方法。

区别在于:

push_bach():

首先需要调用构造函数构造一个临时对象,然后调用拷贝构造函数将这个临时对象放入容器中,然后释放临时变量。

emplace_back():

这个元素原地构造,不需要触发拷贝构造和转移构造。

如果使用push_back,由于每次需要调用析构函数,所以理论上emplace_back比push_back更快一点。

以上是关于[CPP]push_back和emplace_back的区别的主要内容,如果未能解决你的问题,请参考以下文章

Cpp中vector的输出打印

cpp中vector动态数组(一种container)的简单用法

Java OpenCV FileStorage 和 Mat.push_back

push_back 指向指针向量的指针

在C++里,emplace_back可以完全取代push_back吗?

无法在向量中定义push_back