STL坑汇总
2024-08-25 15:00:15
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里面实际上做了两件事儿,一是根据引用的对象复制构造新的对象,二是将此对象添加到尾部。而是不是直接将引用加入尾部。
那么,如果不用引用的话呢?这将是值传递。会做三件事,一是构建一个临时对象,该对象为实参的一个副本,二是根据此临时对象复制构造新的对象,三是新构造的对象加到尾部。
从而相比引用多了一次构造对象。
最新文章
- Openfire阶段实践总结
- Linux命令行小插曲
- Java并发工具类Semaphore应用实例
- strcpy基本用法
- Docker学习笔记2
- 转:视觉中国的NoSQL之路:从MySQL到MongoDB
- C#实现测量程序运行时间及cpu使用时间
- js写的简单轮播图
- 一步一步重写 CodeIgniter 框架 (3) —— 用面向对象重构代码
- wl18xx wifi编译出现没有编译wlcore_sdio的情况
- java初级开发程序员(第六单元)
- 微信小程序后台音乐播放注意事项
- Capacitor电容
- Python 接口自动化(预)
- JAVA数组的定义以及使用1
- 几个大型网站的Feeds(Timeline)设计简单对比
- 安卓开发笔记(二十):利用夜神模拟器调试运行Android Studio的apk
- random函数的使用
- 简单的异步函数async/await例子
- 【uoj35】 后缀排序
热门文章
- 关于因各种原因,造成LINUX主机不能通过域名访问自己的解决办法
- Python 进阶 之 @property
- Centos 7 设置 DNS
- XAMPP配置vhosts多站点/绝对正确
- windows 下配置浏览器使用 kerberos
- 百度之星资格赛 2016 Problem 1004
- (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
- 位运算和enum中的位运算
- CodeForces - 283E Cow Tennis Tournament
- 【第二类Stirling数】Gym - 101147G - The Galactic Olympics