欢迎光临散文网 会员登陆 & 注册

【C++】emplace_back()和push_back()

2023-02-17 12:48 作者:叫我林林就行  | 我要投稿

为什么引入emplace_back?

避免了内存的拷贝和移动,提升了容器插入元素的性能。

主要区别

调用 push_back 或者 insert 函数的时候,是把 元素类型 的 对象 传递给他们,这些对象被拷贝到容器中.  而调用 emplace_back 时候,则是把相应的 参数 传递给 元素类型的 构造函数,这样emplace_back能通过参数原地(直接在容器中)构造对象,不需要拷贝操作

通俗点讲:emplace_back函数的作用是减少对象拷贝和构造次数,是C++11中的新特性。在使用push_back函数往容器中增加新元素时,要有一个该对象的实例才行,而emplace_back可以不用,它可以直接传入对象的构造函数参数直接进行构造,减少一次拷贝和赋值操作。

例子


【C++】emplace_back()和push_back()的评论 (共 条)

分享到微博请遵守国家法律