头文件:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
申明二维数组:
vector<vector<int>>vec;//嵌套申明
此时的vec.size为0,空有其名,没有空间大小,并不能用来访问元素,此时可以向vec中添加一维向量
方案一:
vec.push_back(vector<int>());
vector()的()中可以添加参数vector(m,n),其中m为一维向量的大小,默认为0,n为一维向量中的元素,默认为0.
方案二:
vec.resize(1);
vec.resize()有两个参数(m,n),m为vec的大小,n为vector(),也就是申明vec时vector<>vec中尖括号之间的东西。
到此我们也可看出,vector二维数组其实就是一个嵌套,因此我们也可以这样理解:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
#define type vector < int >
#define type_size 6 //大小自定
#define type_value 3 //大小自定
#define vec_size 6 //大小自定
#define vec_value type(type_size,type_value)//参数可不要
int main()
{
vector<type> vec(vec_size,vec_value);//申明二维向量,vec_size指定大小,vec_value指定初始值,两参数默认为0,都可不要
vec.push_back(vec_value); //添加一个一维向量
vec.resize(vec_size, vec_value); //重新指定二维向量的大小,不足的用vec_vauet(一维向量)填充
return 0;
}
例如:
申明一个m*n的二维数组并初始化为0
vector<vector<int>>vec(m,vector<int>(n,0)); //m*n的二维vector,所有元素为0