vector 说明
vector是向量类型,可以容纳许多类型的数据,因此也被称为容器
(可以理解为动态数组,是封装好了的类)
进行vector操作前应添加头文件#include<vector>
vector初始化
方式1.
//定义具有10个整型元素的向量(尖括号为元素类型名,它可以是任何合法的数据类型),不具有初值,其值不确定
vector<int>a(10);
方式2.
//定义具有10个整型元素的向量,且给出的每个元素初值为1
vector<int>a(10,1);
方式3.
//用向量b给向量a赋值,a的值完全等价于b的值
vector<int>a(b);
方式4.
//将向量b中从0-2(共三个)的元素赋值给a,a的类型为int型
vector<int>a(b.begin(),b.begin+3);
方式5.
//从数组中获得初值
int b[7]={1,2,3,4,5,6,7};
vector<int> a(b,b+7);
Vector所有方法总结如下
方法名 | 作用 | 备注 |
---|---|---|
begin() | 指向vector首元素的迭代器 | vector::iterator |
end() | 指向vector尾元素下一个位置的迭代器 | vector::iterator |
rbegin() | 指向vector尾元素的反向迭代器,即rbegin()指向尾元素,rbegin-1指向倒数第二个元素 | vector::iterator |
rend() | 指向vector头元素前一个位置的反向迭代器,即rend()指向头元素前一个位置元素,rbegin-1指向第一个元素 | vector::iterator |
cbegin() | 指向vector头元素的const迭代器,与begin()不同的是返回迭代器类型为vector::const_iterator | vector::const_iterator |
cend() | 指向vector尾元素下一个位置的const迭代器,与end()不同的是返回迭代器类型为vector::const_iterator | vector::const_iterator |
crbegin() | 指向尾元素的const迭代器,即反向®的const©头(begin)迭代器 | vector::const_iterator |
crend() | 指向头元素下一个位置的const迭代器,即反向®的const©尾(end)迭代器 | Vector::const_iterator |
size() | 返回vector中元素个数 | - |
max_size() | 返回vector中最多能容纳元素个数 | - |
resize(n) | 改变vector的大小为n | 如果n比当前vector中元素个数大,则填充默认值 |
capacity() | 当前分配给vector的容量大小 | - |
empty() | 判断vector是否为空 | - |
reserve(n) | 改变当前vecotr所分配空间的大小capacity为n | 如果当前capacity大于n,则不变 |
shrink_to_fit() | 改变当前vecotr所分配空间的大小为size() | - |
push_back() | 在vector的最后添加一个数据 | - |
pop_back() | 去掉vector的最后一个数据 | - |
at(i) | 得到编号位置i的数据 | - |
front() | 得到vector头元素的引用 | - |
back() | 得到vector的最后一个元素的引用 | - |
assign() | 用新的元素替换vector中旧的元素 | - |
insert() | 添加元素(任意位置) | - |
erase() | 删除元素(任意位置) | - |
clear() | 清空vector中的所有元素 | - |
swap() | 交换两个vector的元素 | - |
emplace() | 向vector中添加元素 | - |
emplace_back() | 在vector尾部插入元素 | - |