本文综述了二维数组使用,代码可以跑一下看看效果。
#include<iostream>
#include<vector>
using namespace std;
//method 1
/*
int main()
{
int row, column;
cin >> row >> column;
//申请空间
vector<vector<int> > a;
a.resize(row, vector<int>(column));
//使用空间
for (int j = 0; j < a.size(); j++)
for (int k = 0; k< a[j].size(); k++)
a[j][k] = 2 * j + k;
//output
for (int j = 0; j < a.size(); j++)
{
cout << endl;
for (int k = 0; k< a[j].size(); k++)
{
cout << a[j][k] << " ";
}
}
system("pause");
return 0;
}
*/
//method2
/*
int main()
{
int row, column;
cin >> row >> column;
//方法二
//申请空间
vector<vector<int> > a;
a.resize(row);
for (int i = 0; i < row; ++i)
a[i].resize(column);
//使用空间
for (int j = 0; j < a.size(); j++)
for (int k = 0; k< a[j].size(); k++)
a[j][k] = 2*j + k;
for (int j = 0; j < a.size(); j++)
{
cout << endl;
for (int k = 0; k< a[j].size(); k++)
{
cout << a[j][k] << " ";
}
}
system("pause");
return 0;
}
*/
//method 3
/*
int main()
{
int row, column;
cin >> row >> column;
//申请空间
vector<vector<int> > a(row, vector<int>(column));//默认初始化内容为0
//vector<vector<int> > a(row, vector<int>(column,-1));//用-1初始化二维数组
//使用空间
for (int j = 0; j < a.size(); j++)
for (int k = 0; k< a[j].size(); k++)
a[j][k] = j+k;
for (int j = 0; j < a.size(); j++)
{
cout << endl;
for (int k = 0; k< a[j].size(); k++)
{
cout << a[j][k] << " ";
}
}
system("pause");
return 0;
}
*/
//method 4
int main()
{
vector < vector<int> > a; // a是向量类型的向量
vector <int> v1; // v1是int类型的向量
int i, j, m,row,column;
cin>>row>>column;
for (i = 0; i <row; i++) // a有4个元素
{
a.push_back(v1);// 每个元素是v1
}
for (j = 0; j < row; j++)
{
for (i = 0; i <column; i++)
{
a[j].push_back(i+j);
// a的第i个元素插入一个量 // 就是每个v1插入一个量 // a[0]插入,a[1]插入,a[2]插入,a[3]插入
// 如此循环四次,相当于按列的顺序插入
}
}
cout << "Size:" << a.size() << endl;
for (i = 0; i < a.size(); i++)
{
for (j = 0; j < a[i].size(); j++)
{
cout << a[i][j] << " "; // 输出a[0][0],a[0][1]a[0][2],a[0][3]// 输出a[1][0],a[1][1]a[1][2],a[1][3]// 如此第一个索引值循环4次,相当于按行的顺序输出
}
cout << endl; // 输出一行就换行
}
system("pause");
return 0;
}