定义一个二维数组:
vector<vector<int> > v;
访问二维vector的元素: 如果指定外层和内层向量的大小,就可用operator[]进行读和写;如果只指定外层向量大小,就能用push_back()函数进行写,不能用operator[]进行读和写。
(1)创建m*n的二维vector:
vector<vector <int>> nums(m ,vector<int>(n)); //m*n的二维vector
定义了一个vector容器,元素类型为vector,初始化为包含m个vector对象,每个对象都是一个新创立的vector对象的拷贝,而这个新创立的vector对象被初始化为包含n个0。
vector(n)表示构造一个无名且含n个0的vector对象。
(2)动态创建m*n的二维vector
方法一:
vector<vector <int> > nums;
nums.resize(m);
for(int i=0;i<m;i++) nums[i].resize(n);
方法二:
vector<vector <int> > nums;
nums.resize(m,vector<int>(n));
(3)初始化二维数组
vector<vector <int>> nums(m , vector<int>(n,0)); //m*n的二维vector,所有元素为0
获得二维数组的行数:nums.size()
获得二维数组的列数:nums[0].size()