C++ 中"emplace_back" 与 "push_back" 的区别

emplace_back和push_back都是向容器内添加数据.
对于在容器中添加类的对象时, 相比于push_back,emplace_back可以避免额外类的复制和移动操作.
"emplace_back avoids the extra copy or move operation required when using push_back."
参见: http://en.cppreference.com/w/cpp/container/vector/emplace_back
注意下面代码中的emplace_back和push_back的添加方式(VS2012下编译通过):
#include <vector>
#include <string>
#include <iostream>
struct President
{
std::string name;
std::string country;
int year;
President(std::string p_name, std::string p_country, int p_year)
: name(std::move(p_name)), country(std::move(p_country)), year(p_year)
{
std::cout << "I am being constructed.\n";
}
President(President&& other)
: name(std::move(other.name)), country(std::move(other.country)), year(other.year)
{
std::cout << "I am being moved.\n";
}
President& operator=(const President& other);
};
int main()
{
std::vector<President> elections;
std::cout << "emplace_back:\n";
elections.emplace_back("Nelson Mandela", "South Africa", 1994); //没有类的创建
std::vector<President> reElections;
std::cout << "\npush_back:\n";
reElections.push_back(President("Franklin Delano Roosevelt", "the USA", 1936));
std::cout << "\nContents:\n";
for (President const& president: elections) {
std::cout << president.name << " was elected president of "
<< president.country << " in " << president.year << ".\n";
}
for (President const& president: reElections) {
std::cout << president.name << " was re-elected president of "
<< president.country << " in " << president.year << ".\n";
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C++
# 中"emplace_back"
# 与
# "push_back"
# 的区别
# emplace_back
# push_back的区别
# 关于C++中push_back()函数的用法及代码实例
# C++ push_back()函数使用详解
# C++ push方法与push_back方法的使用与区别
# C++实现栈的操作(push和pop)
# C++ push方法与push_back方法常见方法介绍
# 都是
# 希望能
# 谢谢大家
# 容器内
# vector
# cpp
# cppreference
# en
# container
# http
# gt
# lt
# iostream
# string
# class
# pre
# include
# brush
# span
# style
相关文章:
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
上海网站制作开发公司,上海买房比较好的网站有哪些?
如何安全更换建站之星模板并保留数据?
如何通过PHP快速构建高效问答网站功能?
详解jQuery停止动画——stop()方法的使用
建站之星安装失败:服务器环境不兼容?
建站之星后台密码遗忘?如何快速找回?
,如何利用word制作宣传手册?
长沙企业网站制作哪家好,长沙水业集团官方网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
重庆网站制作公司哪家好,重庆中考招生办官方网站?
山东网站制作公司有哪些,山东大源集团官网?
如何用VPS主机快速搭建个人网站?
如何制作一个表白网站视频,关于勇敢表白的小标题?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
香港服务器WordPress建站指南:SEO优化与高效部署策略
Python路径拼接规范_跨平台处理说明【指导】
简单实现Android验证码
怀化网站制作公司,怀化新生儿上户网上办理流程?
建站主机是否属于云主机类型?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
制作网站公司那家好,网络公司是做什么的?
如何正确选择百度移动适配建站域名?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
javascript中对象的定义、使用以及对象和原型链操作小结
h5网站制作工具有哪些,h5页面制作工具有哪些?
css网站制作参考文献有哪些,易聊怎么注册?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
长沙做网站要多少钱,长沙国安网络怎么样?
如何彻底删除建站之星生成的Banner?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
建站之星如何实现五合一智能建站与营销推广?
如何快速搭建个人网站并优化SEO?
再谈Python中的字符串与字符编码(推荐)
微信小程序 input输入框控件详解及实例(多种示例)
已有域名建站全流程解析:网站搭建步骤与建站工具选择
高端智能建站公司优选:品牌定制与SEO优化一站式服务
高性能网站服务器配置指南:安全稳定与高效建站核心方案
内网网站制作软件,内网的网站如何发布到外网?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何快速重置建站主机并恢复默认配置?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
建站为何优先选择香港服务器?
如何通过云梦建站系统实现SEO快速优化?
全景视频制作网站有哪些,全景图怎么做成网页?
*请认真填写需求信息,我们会在24小时内与您取得联系。