C++——如何正确的使用STL中的vector?

什么是vector?

在STL(标准模板库)中,vector是一种动态数组容器,可根据需要自动增长或缩小。它可以存储任意类型的元素,并且支持快速的随机访问。

  1. vector是表示可变大小数组的序列容器
  2. vector采用的是连续的存储空间来存储元素,类似于数组,但是它的大小是可以被容器自动的动态改变
  3. vector使用动态分配数组来存储它的元素
  4. vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大
  5. 与其它动态序列容器相比,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

C++——如何正确的使用STL中的vector?_第1张图片
C++——如何正确的使用STL中的vector?_第2张图片

空间增长问题

空间容量 接口说明
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——表示指向存储空间的尾部

C++——如何正确的使用STL中的vector?_第3张图片

你可能感兴趣的:(c++,开发语言)