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

vector底层原理(二)

一、vector中reserve和resize的区别:
共同点:

  • 不会改变原有元素
  • vector的大小只增不减,所以,使得vector空间缩小的操作无效

不同点:

  • reserve会增加vector的容量
  • resize在增加容量的同时,将空闲位置填入默认值

用途:

  • reserve用于避免多次内存分配(用reserve一次多分配些空间)
  • resize用于确保操作符[]不会越界访问,因为resize将新增的空间填入默认值

二、vector的元素为什么不能是引用?
根本原因:引用是别名,不是对象,没有实际地址,不能创建引用的指针,不能创建引用的引用,因此不能通过操作符[]获取引用的引用

直接原因:引用没有独立的存储空间,因此无法作为 vector 内部的元素存储。vector 的存储机制要求每个元素都能独立存在和管理,这与引用的特性不符

推荐学习 https://xxetb.xetslk.com/s/p5Ibb


http://www.mrgr.cn/news/19098.html

相关文章:

  • YOLOv5 结合切片辅助超推理算法 | 这才叫让小目标无处遁形!
  • TCP 拥塞控制
  • Android之Handler的post方法和sendMessage的区别
  • 【Linux操作系统】:Linux生产者消费者模型
  • 大二暑假去龙旗科技(上海)做了两个月软件测试实习生,讲讲我的经历和感受
  • 【2024】Datawhale X 李宏毅苹果书 AI夏令营 Task3
  • ssh安装
  • 华为OD机试 - 最长方连续方波信号(Java 2024 E卷 100分)
  • [SDK]-按钮静态文本与编辑框控件
  • C#中的Array.Sort()和Reverse()
  • 批量修改海量cad文件名——vba实现
  • 宝藏!《联盟现代控制特训班题库》(麒麟篇) 习题部分:甄选内容
  • 将泛型和函数式编程结合,竟然会让代码这么优雅!
  • 数据访问:JPA关联MyBatis
  • 【MySQL00】【 杂七杂八】
  • 【C++11(一)之入门基础)】
  • 使用UniApp实现自定义音乐播放器组件封装(简单轻量级,完美支持H5/小程序/Android)
  • 数字孪生:现状、挑战与未来
  • 牛客周赛 Round 58
  • hackme靶机通关攻略