【C++初阶】:vector的基本介绍

一.vector(向量)介绍

在这里插入图片描述

二.vector原型

在这里插入图片描述
在这里插入图片描述

vector主要分为两个模板参数,一个是T,T是将数据类型进行实例化(本质就是一个数组)。第二个参数就是Alloc,Alloc是一个空间配置器,也就是一个内存池并且它自己有一个缺省参数allocator,如果有人觉得这个内存池不适合可以通过它进行修改(一般情况下不需要管)。

三.构造

在这里插入图片描述

在这里插入图片描述

四.区别reserve和resize

在这里插入图片描述

在这里插入图片描述

这两个接口都是重新调整容量大小,如果n小于当前容量则容量不变,反之就扩容到n。注意这个扩容是直接按照类型进行的不是扩容多少字节。

两者差别

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们可以看到当使用reserve开空间时再使用【】进行访问就会出现断言错误。这是因为再STL里一般是以size作为有效数据,而【】在进行重载时第一段代码就是assert(i<size)。reserve只是单纯的开空间,并没有改变size的大小,所以在访问时自然就发生了断言错误。而resize不仅开空间也会改变size大小,所以可以正常访问。对于reserve我们应当使用insert逐一插入。

在这里插入图片描述

在这里插入图片描述

五.二维数组

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_73790767/article/details/131628243