当前位置: 首页 > news >正文

关于vector的emplace_back和push_back的区别

实验代码:
class A {
public:A(int x) {x = x;cout << "construct A" << endl;}A(const A& a) {x = a.x;cout << "copy construct A" << endl;}A(const A&& a) {cout << "Move construct A" << endl;}
private:int x;
};int main()
{vector<A> vec;vector<A> vec2;cout << endl << "emplace" << endl;vec.emplace_back(1);cout << endl << "push" << endl;vec2.push_back(1);
运行结果:

在定义了A的移动构造函数的时候
在这里插入图片描述
注释掉A的移动构造函数后
在这里插入图片描述

结果:

push_back会在有移动构造函数时优先使用移动构造,没有移动构造就使用拷贝构造。
emplace_back只进行一次构造。

http://www.lryc.cn/news/58425.html

相关文章:

  • Vue——表单输入绑定
  • MySQL性能优化(二)索引
  • < 每日闲谈:你真的了解 “ ChatGPT ” 嘛 ? >
  • 改善Instagram客户服务的6个技巧
  • 8年经验之谈:4步解决测试与开发人员有争议的bug问题...
  • Linux日常小技巧shell脚本
  • 技术创业者必读:从验证想法到技术产品商业化的全方位解析
  • Docker Registry 本地镜像发布到私有库
  • Pytorch构建ResNet-50V2
  • 【01】PointNet论文解析
  • nuxt.js 在IE浏览器||其他浏览不识别document/window 情况处理
  • JavaEE简单示例——基于注解的SSM整合
  • EFBG-06-250双比例阀放大器
  • 初级算法-栈与队列
  • 菜鸟教程之Android学习笔记Service
  • 半个月狂飙1000亿,ChatGPT概念股凭什么?
  • linux使用systemctl
  • 交换机和VLAN简介
  • 想要拯救丢失的海康威视硬盘录像数据?可采用这三种恢复方法
  • 每周一算法:高精度乘法(一)大整数乘整数
  • c++华为od面经
  • 【郭东白架构课 模块二:创造价值】18|节点一:架构活动中为什么要做环境搭建?
  • 15个awk的经典实战案例
  • 【JAVA】本地代码获取路径乱码
  • 自然机器人最新发布:智能流程助手,与GPT深度融合
  • 【Mybatis】4—动态SQL
  • 事务传播特性和隔离级别
  • socket网络编程
  • IO多路复用机制详解
  • 选择一款好用的营销项目管理可以更好帮您解决任何问题