vector 是一种顺序容器,实际和数组差不多;
vector是向量类型,可以容纳许多类型数据;
1. 向量初始化
vector<int> a;声明向量a
vector<int> a(4); 声明一个大小为4的向量;
vector<int> a(5,1); 声明一个初始大小为1且数量为5的向量
vector<int> a(b); 声明并用向量b初始化a
vector<int> a(b.begin(),b.begin()+3); 从向量b中取前三个向量初始化向量a
vector<int> a(arr,arr+1); 用数组arr的前1个元素初始化a
vector<int> a(&arr[0], &arr[1]); 用数组arr的前1个元素初始化a;
2. 向量基本操作
a.insert(a.begin(),1); 表示在向量a的第0个位置前插入1;
a.insert(a.begin(),4,2); 表示在向量a的第0个位置前插入入4个2;
a.insert(a.begin()+1,b.begin(),b.end()); 表示在向量a的第1个位置前插入b的第0个一直到最后一个元素;
a.push_back(1); 在向量a的尾部添加数组1;
a.pop_back(); 删除向量a最后一个元素;
a.resize(5); 将向量a中的元素改为5个;
a.erase(a.begin()); 删除a的第1个元素对应第0个位置;
a.erase(a.begin()+1,a.end()); 删除a的第2个元素一直到最后
a.size();向量大小;
a.max_size();向量的最大容量;
a.capacity();向量的真实大小;
a.empty(); 判断a是否为空;
遍历:
for(int i = 0; i<a.size(); i++)
for(it = a.begin(); it != a.end(); it ++)
复制:
vector<int> a;
vector<int> b;
a = b; 将b复制给a;
判断:
vector<int> a;
vector<int> b;
a == b; 向量a和向量b进行比较,相等则返回1;
交换:
vector<int> a;
vector<int> b;
b.swap(a); 向量a和b进行交换
排序:
需要包含 #include <algorithm>
vector<int> a;
sort(a.begin(),a.end());
清空:
a.clear();
3. 二维数组:
vector<vector<int>> a(3, vector<int>(4)); //创建一个3*4向量;相等于a[2][3]\
注意二维数组行列索引均从0开始;