vector是一个动态数组,常被称为向量容器。擅长在尾部插入或删除元素,时间复杂度为O(1);而对于在容器头部或者中部插入或删除元素,时间复杂度为O(n)。
创建该容器之前,代码中需要如下内容:
#include <vertor>using namespace std;
基本函数实现
- 构造函数 | 函数名 | 说明 | | —- | —- | | vector() | 创建一个空vector | | vector(int iSize) | 创建一个vector,元素个数为iSize | | vector(const vector&) | 复制构造函数 | | vector(begin, end) | 复制[begin,end)区间内另一个数组的元素到vector中 |
- 插入函数 | 函数名 | 说明 | | —- | —- | | void push_back(const T& x) | 向尾部插入一个元素x | | iterator insert(iterator it, const T& x) | 向it迭代器指向元素前插入一个元素x | | iterator insert(iterator it, int n, const T& x) | 向it迭代器指向元素前插入n个相同的元素x | | iterator insert(iterator it, const_iterator first, const_iterator last) | 向it迭代器指向元素插入另一个相同类型向量的[fitst, last)间的数据 |
- 删除函数 | 函数名 | 说明 | | —- | —- | | iterator erase(iterator it) | 删除向量中迭代器指向元素 | | iterator erase(iterator first, iterator last) | 删除向量中[first, last)中元素 | | void pop_back() | 删除向量中最后一个元素 | | void clear() | 清空向量中所有元素 |
- 遍历函数 | 函数名 | 说明 | | —- | —- | | reference at(int iPos) | 返回iPos位置元素的引用 | | T* data() | 返回指向容器中首个元素的指针 | | reference front() | 返回首元素的引用 | | reference back() | 返回为元素的引用 | | iterator begin() | 返回向量头指针,指向第一个元素 | | iterator end() | 返回向量尾指针,指向向量最后一个元素的下一个位置 | | reverse_iterator rbegin() | 反向迭代器,指向最后一个元素 | | reverse_iterator rend() | 反向迭代器,指向第一个元素之前的位置 |
- 其他函数 | 函数 | 说明 | | —- | —- | | bool empty() const | 判断向量是否为空,若为空(true),则向量中无元素 | | int size() const | 返回向量中元素的个数 | | int capacity() const | 返回vector分配的大小,当前容量 | | int max_size() const | 返回最大可允许的vector元素数量 | | void swap(vector T&) | 交换两个同类型向量的数据 | | void assign(int n, const T& x) | 设置向量中前n个元素的值为x | | void assign(const_iterator first, const_iterator last) | 向量[first, last)中元素设置成当前向量元素 |
