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
相关文章:
建站主机与服务器功能差异如何区分?
建站之星后台密码遗忘?如何快速找回?
视频网站制作教程,怎么样制作优酷网的小视频?
如何快速搭建自助建站会员专属系统?
建站之星微信建站一键生成小程序+多端营销系统
如何在阿里云虚拟服务器快速搭建网站?
如何在云主机上快速搭建多站点网站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
定制建站价位费用解析与套餐推荐全攻略
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
高端建站三要素:定制模板、企业官网与响应式设计优化
企业微网站怎么做,公司网站和公众号有什么区别?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
详解jQuery中基本的动画方法
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何零成本快速生成个人自助网站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何选择高效响应式自助建站源码系统?
小型网站建站如何选择虚拟主机?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
如何在云虚拟主机上快速搭建个人网站?
如何快速启动建站代理加盟业务?
如何在IIS中新建站点并解决端口绑定冲突?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何快速生成凡客建站的专业级图册?
PHP 500报错的快速解决方法
大连网站制作公司哪家好一点,大连买房网站哪个好?
济南企业网站制作公司,济南社保单位网上缴费步骤?
如何在万网ECS上快速搭建专属网站?
完全自定义免费建站平台:主题模板在线生成一站式服务
如何通过网站建站时间优化SEO与用户体验?
免费视频制作网站,更新又快又好的免费电影网站?
Android自定义listview布局实现上拉加载下拉刷新功能
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
高端云建站费用究竟需要多少预算?
如何用PHP快速搭建CMS系统?
网站制作说明怎么写,简述网页设计的流程并说明原因?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
建站主机选虚拟主机还是云服务器更好?
存储型VPS适合搭建中小型网站吗?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
建站主机选购指南:核心配置与性价比推荐解析
学校为何禁止电信移动建设网站?
已有域名和空间如何快速搭建网站?
太平洋网站制作公司,网络用语太平洋是什么意思?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
建站之星后台管理如何实现高效配置?
免费网站制作appp,免费制作app哪个平台好?
*请认真填写需求信息,我们会在24小时内与您取得联系。