一、vector定义
- 动态大小:vector可以根据需要动态增加或减少元素的数量,而不需要事先指定数组大小,这使得它非常灵活。
- 随机访问:可以通过下标快速访问vector中的任何元素,时间复杂度为O(1)。
- 内存管理:vector内部封装了动态内存管理的细节,可以自动扩展容量并释放不再需要的内存,简化了内存管理的工作。
- 支持STL算法:vector是标准模板库(STL)中的一部分,可以方便地与其他STL组件一起使用。
二、vector原理
动态数组Vector在标准库中的就是类模板:
template< class T, class Allocator = std::allocator<T>> class vector;
vector是一个动态数组,可以存储任意类型的数据。在这个定义中,T是vector中存储的元素类型,Allocator是用来分配内存的分配器。
Allocator:内存管理器(由系统提供),帮助我们动态地分配内存空间,根据需要来调整内存的大小(自动扩容,如果用户输入的数据将要超过内存容量,就将内存容量扩大双倍),避免静态内存分配带来的限制。
三、vector动态数组操作
1)vector初始化:
vector<类型> myVector; // 创建一个空的vecto