全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

emplace_backpush_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小时内与您取得联系。