首页 > 解决方案 > 因此,如果我不需要 emplace_back (emplace) 提供的新功能,我应该使用 push_back (insert)?

问题描述

在昨天问了一些虚拟问题、试验和阅读了很多关于emplace_backover的内容之后push_back,我仍然不确定我应该“默认”使用哪个,这意味着大部分时间。

正如对热门问题“我为什么要使用 push_back 而不是 emplace_back? ”的回答中所指出的那样,以及在其他文章emplace_back中,人们在介绍“它可以做 push_back (insert) 可以做的任何事情,有时甚至可以做任何事情”之后得到的第一印象做得更好”是错误的。

到目前为止,我的印象是,在我使用移动语义的情况下(或者如果我需要进行复制),我无法从就地对象创建中受益,并且当我不需要返回值,使用push_back链接中描述的显式构造函数可能会遇到麻烦,可能会更安全。

简单地说,如果我不使用emplace_back具有和push_back/insert没有的新功能,我最好坚持使用push_back/ insert

我是正确的,还是我又错过了什么?

标签: c++c++11vector

解决方案


推荐阅读