vector的基本介绍
- 一.vector(向量)介绍
- 二.vector原型
- 三.构造
- 四.区别reserve和resize
- 五.二维数组
一.vector(向量)介绍
二.vector原型
vector主要分为两个模板参数,一个是T,T是将数据类型进行实例化(本质就是一个数组)。第二个参数就是Alloc,Alloc是一个空间配置器,也就是一个内存池并且它自己有一个缺省参数allocator,如果有人觉得这个内存池不适合可以通过它进行修改(一般情况下不需要管)。
三.构造
四.区别reserve和resize
这两个接口都是重新调整容量大小,如果n小于当前容量则容量不变,反之就扩容到n。注意这个扩容是直接按照类型进行的不是扩容多少字节。
两者差别
我们可以看到当使用reserve开空间时再使用【】进行访问就会出现断言错误。这是因为再STL里一般是以size作为有效数据,而【】在进行重载时第一段代码就是assert(i<size)。reserve只是单纯的开空间,并没有改变size的大小,所以在访问时自然就发生了断言错误。而resize不仅开空间也会改变size大小,所以可以正常访问。对于reserve我们应当使用insert逐一插入。