如果直接使用
vector<int,vector<int> > v;
创建二维数组,那么就会得到一个空的容器,这样再通过push_back
赋值是非常麻烦的。
初始化二维数组
在此介绍二维数组初始化的一般操作。
首先看一维数组的初始化示例:
定义一个长度为n
(正整数)的int
类型一维数组v
:
vector<int> v(n);
定义一个长度为n
的int
类型一维数组v
,并将其所有元素赋值为1:
vector<int> v(n,1);
在此基础上,二维数组的初始化示例如下:
//创建2*3二维数组,并将数组元素的值都设为1
vector<vector<int>> v(2, vector<int>(3, 1));
二维数组的行数、列数
二维数组的行数为数组第一维的长度:
vector<vector<int>> v(2, vector<int>(3, 1));
int row=v.size();
在列数相同的二维数组中,列数为任意一行的长度(一般取第一行):
vector<vector<int>> v(2, vector<int>(3, 1));
int col=v[0].size();
示例
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<vector<int> > a(2,vector<int>(3,5));
//初始化一个2*3的数组,将所有元素赋值为5
int row=a.size();
int col=a[0].size();
cout<<"row:"<<row<<' '<<"col:"<<col;
for(int i=0;i<row;i+=1){
cout<<'\n';
for(int j=0;j<col;j+=1)
cout<<a[i][j]<<' ';
}
return 0;
}
运行结果: