本文综述了二维数组使用,代码可以跑一下看看效果。
#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; }