目录
什么是vector
vector的介绍
和我一样,我猜你们看到题目时心里都会产生一个疑问"什么是vector?(大佬除外)".vector其实是c++中的一种容器.总而言之,vector就是种特殊的"数组".什么样的数组呢?不定长数组!
不仅如此,他还把一些常规操作封装在了vector内部.
如果说栈是个弹夹,队列就是队列,那么vector就像个贪吃蛇(我的比喻没错吧),不定长度(真的和贪吃蛇的特征很相似)
当然,你们也可以把vector理解成队列的衍生类别(bushi).
其实vector和队列本质上几乎是没有相同的,我只是为了你们好理解(憋屈).
例如: v 是一个vector,和队列,栈一样,我们可以读取他的长度,改变他的大小,删除一个元素,在尾部添加一个元素,判断容器是否为空……一系列的作用
模板的声明方式
由于vector是一个模板,所以我们需要声明一个vector,声明方式如下:
vector<int> v;
vector<double> vd;
vector<char> vc;
vector<int> v;相当于声明一个int类型的数组: int v[];
vector<double> vd;相当于声明一个double类型的数组: double vd[];
vector<char> vc; 相当于声明一个char类型的数组: char vc[];
相比较于普通的数组,vector有点那是只多不少:长度可变,内存动态分配,封装了许多的函数,可以删除插入选择……
接下来,我们来判断一下:
之所以vector的长度可变,是因为他一上来就申请了一个内存超级大的数组来保存数据,虽然你只在这里面使用了一小部分.
这句话对吗?大错特错!!!
vector的长度可变,是因为你加一个数进去,vector的长度就会增加,所以并不是说他一上来就申请了一个超级大的数组(内存:你礼貌吗?) vector 内部包括了一个用来记录数据的数组,当我们不断向 vector 中增加元素时,这个数组也有空间用完的时候,这时 vector 内部会申请一个更大的新的数组,并将原数组中的数据复制到新数组中,之后替换原数组,这就是 vector 长度可变的秘密。
vector的基本操作
vector的函数以及其实现功能如下:
vector<int> v
v.clear(