这是来源于c++标准模板库STL中的一种顺序结构
关于顺序结构还有两种即:c++list 和 c++double-ended queues
Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。
vectors相当于一种容器
C++ Vectors可以使用以下任意一种参数方式构造:
- 无参数 - 构造一个空的vector,
- 数量(num)和值(val) - 构造一个初始放入num个值为val的元素的Vector
- vector(from) - 构造一个与vector from 相同的vector
- 迭代器(start)和迭代器(end) - 构造一个初始值为[start,end)区间元素的Vector(注:半开区间).
再说几个常用的函数
V.at() 函数
返回当前Vector指定位置loc的元素的引用. at() 函数 比 [] 运算符更加安全, 因为它不会让你去访问到Vector内越界的元素.
v.at(i) 相对于v[i]更安全
back() 函数返回当前vector最末一个元素的引用
v.back()
clear()函数删除当前vector中的所有元素.
v.empty()
清空所有
如果当前vector没有容纳任何元素,则empty()函数返回true,否则返回false.
v.insert函数
三种用法:
- 在指定位置前插入值为val的元素,返回指向这个元素的迭代器,
- 在指定位置前插入num个值为val的元素
- 在指定位置前插入区间[start, end)的所有元素 .
max_size() 函数
返回当前vector所能容纳元素数量的最大值
v.push_back()函数
push_back()添加值为val的元素到当前vector末尾
push_back( TYPE &val ) |
resize() 函数
改变当前vector的大小为size,且对新创建的元素赋值val
void resize( size_type size, TYPE val ); |
v.swap()函数
交换当前vector与vector from的元素