vector简介
与string不同,vector,list,stack,queue等数据结构库诞生于C++之后,其代码规范性和函数名可读性都得到了极大的提升。往后的数据结构只需要重点学习一种,其它便可以不学自通,其无论是函数命名规则和函数使用规则都有着极大的相似性。
vector翻译成中文意思为向量,其在数据结构中代表着顺序表。顺序表我们在C语言中已经详细讲解过,在此我们直接进入STL库中函数的用法和细节
vector的使用
vector常见函数接口
1.构造函数
构造函数声明 | 接口说明 |
vector() | 无参构造 |
vector(size_t n,const value_type& val=value_type()) | 构造并初始化n个val |
vector(const vector& x) | 拷贝构造 |
vector(InputIterator first,InputIterator last) | 使用迭代器进行初始化构造 |
2.迭代器
iterator的使用 | 接口说明 |
begin + end | 获取第一个数据位置的iterator/const_iterator 获取最后一个数据位置下一个的iterator/const_iterator |
rbegin + rend | 获取最后一个数据位置的iterator/const_iterator 获取第一个数据位置前一个的iterator/const_iterator |
3.空间增长问题
容量空间 | 接口说明 |
size | 获取数据个数 |
capacity | 获取容量大小 |
empty | 判断是否为空 |
resize | 改变vector的size |
reverse | 改变vector的capacity |
4.增删查改
vector增删查改 | 接口说明 |
push_back | 尾插 |
pop_back | 尾删 |
find | 查找(注意这个是算法模块实现,不是vector的成员接口) |
insert | 在position之前插入val |
erase | 删除position位置的数据 |
swap | 交换两个vector的数据空间 |
operator[] | 像数组一样访问 |
要注意的是,往后容器进行插入删除等操作,需要传入的位置不再是数据在容器中的编号,而是迭代器的值