最近在刷题的时候遇到过好几次二维数组的问题,因为我自己想在C++方向发展,所以尽可能地用C++提供的STL来完成编程,但是在使用二维数组的时候遇到了麻烦,就是如果用int[][]这种直接表示方式很简单,如果用vector的话就有点麻烦,为此我也查了一下资料。
定义一个二维整形数组并初始化:
vector<vector<int> > array(m); //这个m一定不能少
//初始化一个m*n的二维数组
for(int i=0;i<m;i++) {
array[i].resize(n);
}
测试代码:
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector<vector<int> > array(4);
for(int i=0;i<4;i++) {
array[i].resize(5);
}
//输出二维数组的行和列
cout<<"Row:"<<array.size()<<" Column:"<<array[0].size()<<endl;
//输出二维数组
cout<<"["<<endl;
for(int j=0;j<array.size();j++) {
cout<<"["<<" ";
for(int k=0;k<array[0].size();k++) {
cout<<array[j][k]<<" ";
}
cout<<"]"<<endl;
}
cout<<"]"<<endl;
return 0;
}
运行结果: