1.

Q:vector的push_back()方法到底做了些什么?

为什么声明写的是void push_back (const value_type& val);

A:的确,乍一看,似乎push_back方法添加了一个引用。哦,天啊,如果这个引用对象被析构了,那岂不是要出错。

官方文档是这样写的

Adds a new element at the end of the vector, after its current last element. The content of val is copied (or moved) to the new element.

也就是说,在push_back里面实际上做了两件事儿,一是根据引用的对象复制构造新的对象,二是将此对象添加到尾部。而是不是直接将引用加入尾部。

那么,如果不用引用的话呢?这将是值传递。会做三件事,一是构建一个临时对象,该对象为实参的一个副本,二是根据此临时对象复制构造新的对象,三是新构造的对象加到尾部。

从而相比引用多了一次构造对象。

最新文章

  1. Openfire阶段实践总结
  2. Linux命令行小插曲
  3. Java并发工具类Semaphore应用实例
  4. strcpy基本用法
  5. Docker学习笔记2
  6. 转:视觉中国的NoSQL之路:从MySQL到MongoDB
  7. C#实现测量程序运行时间及cpu使用时间
  8. js写的简单轮播图
  9. 一步一步重写 CodeIgniter 框架 (3) —— 用面向对象重构代码
  10. wl18xx wifi编译出现没有编译wlcore_sdio的情况
  11. java初级开发程序员(第六单元)
  12. 微信小程序后台音乐播放注意事项
  13. Capacitor电容
  14. Python 接口自动化(预)
  15. JAVA数组的定义以及使用1
  16. 几个大型网站的Feeds(Timeline)设计简单对比
  17. 安卓开发笔记(二十):利用夜神模拟器调试运行Android Studio的apk
  18. random函数的使用
  19. 简单的异步函数async/await例子
  20. 【uoj35】 后缀排序

热门文章

  1. 关于因各种原因,造成LINUX主机不能通过域名访问自己的解决办法
  2. Python 进阶 之 @property
  3. Centos 7 设置 DNS
  4. XAMPP配置vhosts多站点/绝对正确
  5. windows 下配置浏览器使用 kerberos
  6. 百度之星资格赛 2016 Problem 1004
  7. (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
  8. 位运算和enum中的位运算
  9. CodeForces - 283E Cow Tennis Tournament
  10. 【第二类Stirling数】Gym - 101147G - The Galactic Olympics