本文主要是介绍vector底层原理(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、vector中reserve和resize的区别:
共同点:
- 不会改变原有元素
- vector的大小只增不减,所以,使得vector空间缩小的操作无效
不同点:
- reserve会增加vector的容量
- resize在增加容量的同时,将空闲位置填入默认值
用途:
- reserve用于避免多次内存分配(用reserve一次多分配些空间)
- resize用于确保操作符[]不会越界访问,因为resize将新增的空间填入默认值
二、vector的元素为什么不能是引用?
根本原因:引用是别名,不是对象,没有实际地址,不能创建引用的指针,不能创建引用的引用,因此不能通过操作符[]获取引用的引用
直接原因:引用没有独立的存储空间,因此无法作为 vector
内部的元素存储。vector
的存储机制要求每个元素都能独立存在和管理,这与引用的特性不符
推荐学习 https://xxetb.xetslk.com/s/p5Ibb
这篇关于vector底层原理(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!