目录
前言
在前面学习的过程中,其实vector用的还是挺多的。我们所使用到的vector最主要的功能就是,利用vector创建动态数组,也就是可以不提前规定数组的大小, 系统自动根据我们所使用的空间来动态的管理我们数组的大小。
原理介绍
vector实现动态数组的原理是:倍增。也就是我们vector类型的数组,当 当前空间不够用的时候,就会直接创建一个空间大小是原来2倍的数组,将原来空间里的元素复制到新的数组中。
关于当前空间的说法,是否与我们所说的“vector可以不提前规定数组的大小”存在冲突呢?答案是不会的。
对于vector类型数组的“当前空间”指的是:如果我们在创建vector时没有指定大小,那么它的初始大小通常是0。也就是说,vector在刚被创建时并不会预先分配任何内存,只有当我们第一次向其添加元素时,它才会开始分配内存。
同时,我们之前用到的vector还有一个优势,就是vector容器创建的数组可以由函数直接作为返回值将数组返回到主函数中。
使用vector创建的格式
vector<int> a;//创建一个数据元素为int类型的数组,数组名称是a
vector<int> a(10);//在原有基础上,规定了该数组的元素个数是10个
vector<int> a(10,2);//在原有基础上,规定该数组的这10个元素都初始化为2
vector<int> a[10];//创建了10个vector<int>类型的数组
(最后一个数组类型还没怎么用过,前面的比较常见)
vector相对普通数组的优势
于是这里我们会发现其实vector实现动态管理数组大小的方式