C++高级_Vector容器 _STL标准模板库

Vector是将元素置于一个 动态数组 中 加以管理的容器。

Vector可以随机存取元素(支持索引值直接存取就像数组一样方便,使用 [] 操作符或者 at()方法)。是一种随机访问的数组类型,它提供了对数组元素的快速访问、随机访问,以及在序列尾部快速、随机地插入和删除操作。它类似于数据结构中的队列、数组和堆栈等概念。

Vector是一个类模板,而不是一种数据类型,使用时需要添加头文件:#include<vector>

vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除 元素比较费时

vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分,那么vector和数组的主要区别是什么呢??

数组:分配的是静态空间,一般分配了就不可以改变,如果数据想要扩容,那么我们就需要重新申请大一点数组,然后把原数组中数据复制过来。

 

vector:分配的是动态空间,vector是随着元素的加入,空间自动扩展的。但是,我们必须要负责任的肯定vector分配的空间是连续的,也就是支持数组中的下标随机访问。

实际上vector的实现机制是:预留一部分空间,而且预留空间的大小是按一定比率增长的,如果空间不够用的话,要保证连续,就必须重新new一片空间,然后将原有元素移动到新空间,同时预留新的空间(并且新分配的空间比原来分配的空间),最后将原来的那部分空间释放掉。这样预留空间的好处就是不用每次向vector中加元素都重新分配空间。

下面就来看看Vevtor对象的默认构造函数都有哪些:

我来给大家演示一下以上部分构造函数的部分用法(更多方法可以自己探索):

vector的赋值

vector的大小 

vector 的数据存取

vector末尾添加移除操作

 

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注