vector详解(不定长数组)

目录

什么是vector

vector的介绍

模板的声明方式

vector的基本操作

push_back

insert 

erase 

遍历vector

小明爱数列-练习题

思路


什么是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(
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cqbzcyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值