码迷,mamicode.com
首页 > 其他好文 > 详细

[CPP]push_back和emplace_back的区别

时间:2020-03-04 18:57:27      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:拷贝构造函数   对象   特性   临时对象   临时   拷贝   转移   容器   新特性   

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

区别在于:

push_bach():

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

emplace_back():

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

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

[CPP]push_back和emplace_back的区别

标签:拷贝构造函数   对象   特性   临时对象   临时   拷贝   转移   容器   新特性   

原文地址:https://www.cnblogs.com/wildkid1024/p/12411185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!