规整二维数组(c中的二维数组)
// 2 *2
vector<int>vi(2); // 未初始化
vector<vector<int>>vs(2,vi);
for(int i=0;i<2;i++)
{
for(int j=0; j<vs[i].size();j++)
{
cout<<vs[i][j]<<" ";
}
cout<<endl;
}
/*运行结果:
0 0
0 0
*/
简洁定义
vector<vector<int>>vs(2,vector<int>(2,1));
// 两个一维数组,每个一维数组为[1,1]
for(int i=0;i<2;i++)
{
for(int j=0; j<vs[i].size();j++)
{
cout<<vs[i][j]<<" ";
}
cout<<endl;
}
/*运行结果:
1 1
1 1
*/
不规整二维数组(类似 c 中指针数组)
// 2 * ? (? 可变)
vector<int>vi;
vector<vector<int>>vs(2,vi);
for(int i=0;i<2;i++)
{
for(int j=0; j<rand()%10;j++)
{
vs[i].push_back(j);
}
}
for(int i=0;i<2;i++)
{
for(int j=0; j<vs[i].size();j++)
{
cout<<vs[i][j]<<" ";
}
cout<<endl;
}
/*运行结果:
0 1 2
0 1 2 3
*/