什么是vector?
在STL(标准模板库)中,vector是一种动态数组容器,可根据需要自动增长或缩小。它可以存储任意类型的元素,并且支持快速的随机访问。
vector
是表示可变大小数组的序列容器vector
采用的是连续的存储空间来存储元素,类似于数组,但是它的大小是可以被容器自动的动态改变vector
使用动态分配数组来存储它的元素vector
会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大- 与其它动态序列容器相比,
vector
在访问元素的时候效率更高,在末尾添加和删除元素更加高效
vector如何使用
构造函数的使用
构造函数声明 | 接口说明 |
---|
vector | 无参构造 |
vector(size_type n,const value_type& val=value_type()) | 构造并初始化n个val |
vector(const vector& x) | 拷贝构造 |
vector(InputIterator first,InputIterator last); | 使用迭代器进行初始化构造 |
iterator的使用
iterator的使用 | 接口说明 |
---|
begin+end | 获取第一个数据位置的iterator/const_iterator,获取最后一个数据的下一个位置的iterator/const_iterator |
rbegin+rend | 获取最后一个数据位置的reverse_iterator,获取第一个数据前一个位置的reverse_iterator |


空间增长问题
空间容量 | 接口说明 |
---|
size | 获取数据个数 |
capacity | 获取容量大小 |
empty | 判断是否为空 |
resize | 改变vector的size |
reserve | 改变vector的capacity |
增删查改
vector增删查改 | 接口说明 |
---|
push_back | 尾部插入一个数据 |
pop_back | 尾部删除一个数据 |
find | 查找 |
insert | 在position之前插入val |
erase | 删除position位置的数据 |
swap | 交换两个vector的数据空间 |
operator[] | 像数据一样访问 |
结构图
capacity()——表示空间的存储容量
size()——表示空间的大小
start——表示指向数据块的起始位置
finish——表示指向有效数据的尾部
end_of_storage——表示指向存储空间的尾部
