1、首先明白capacity与size的概念,capacity表示当前可以容纳多少个元素,size表示当前有多少个元素。为了避免频繁地分配内存,vector预留了一些内存。也就是说:size<=capacity。
2、reserve(n)的目的是:使容器可以容纳n个元素,也就是修改capacity。
a、如果n>capacity,重新分配内存,把原来的数据copy过来,修改capacity = n。
b、如果n< = capacity,什么也不做,直接返回。
3、resize(n)的目的是:修改当前元素的个数。
a、如果n<size,对尾部多余的元素进行析构。
b、如果n=size,什么也不做。
c、如果size<n<=capacity,在尾部补齐元素。没有指定构造方法,使用default构造方法。
d、如果n>capacity,重新分配内存,把原来的数据copy过来,在尾部补齐元素。没有指定构造方法,使用default构造方法。
相关文章
- linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程
- 深入学习和理解Django视图层:处理请求与响应-第九章:异常处理
- 深入学习和理解Django视图层:处理请求与响应
- 我的Android 4 学习系列之开始入手:配置开发环境与理解Hello World!
- 理解CSS中的sticky与fixed定位
- 深入理解 C++ 中的多态与文件操作
- 多模态之ALBEF—先对齐后融合,利用动量蒸馏学习视觉语言模型表征,学习细节理解与论文详细阅读:Align before Fuse-2.Model
- CSS格式与布局中三种位置的理解与应用
- 主成分分析几何理解与推导
- 【Web 服务】深入理解无状态协议、HTTP 与 web 会话