#include<cstdio>
#include<vector>
#include<iostream>
using namespace std;
int main() {
int i = 0, j = 0;
//定义一个二维的动态数组,有10行,每一行是一个用一个vector存储这一行的数据。
//所以每一行的长度是可以变化的。
//之所以用到vector<int>(0)是对vector初始化,否则不能对vector存入元素。
vector <vector<int> > AMD(10, vector<int>(0));
for (j = 0; j < 10; j++)
{
for (i = 0; i < 9; i++) {
AMD[j].push_back(i);
}
for (auto Nv : AMD[j]) {
cout << Nv<<" ";
}
cout << endl;
}
cout << endl;
//上面这个是二维数组初始化与遍历并显示的代码 分开写 两种遍历方法
vector <vector<int> > AMD1(20, vector<int>(0));
for (j = 0; j < 20; j++)
{
for (i = 0; i < 15; i++) {
AMD1[j].push_back(i);
}
}
for (j = 0; j < 20; j++) {
for (i = 0; i < AMD1[j].size(); i++) {
cout << AMD1[j][i] << " ";
}
cout << endl;
}
//上面为简单的遍历方法
cout << endl;
//下面定义一个行列都是变化的数组
vector<vector<int> > AMDYES;
vector<int> Intel;
for (j = 0; j < 10; j++) {
AMDYES.push_back(Intel);//要对每一个vector初始化,否则不能存入元素。
for (i = 0; i < 11; i++)
AMDYES[j].push_back(i);
}
for (j = 0; j < 10; j++) {
for (i = 0; i < AMDYES[j].size(); i++)
cout << AMDYES[j][i] << " ";
cout << endl;
}
cout << endl;
cout << endl;
//第二种遍历方法
vector<vector<int> > AMDYES1;
vector<int> Intel1;
for (j = 0; j < 30; j++) {
AMDYES1.push_back(Intel1);//要对每一个vector初始化,否则不能存入元素。
for (i = 0; i < 20; i++)
AMDYES1[j].push_back(i);
for (auto Nv : AMDYES1[j]) {
cout << Nv << " ";
}
cout << endl;
}
cout << endl;
vector<double> amd1(10, 0);
vector<double> amd2(15, 1);
//已知两个一维vector 并以此构造二维 并初始化
vector <vector<int> > tmd(amd1.size(), vector<int>(amd2.size(),0));
for (j = 0; j < amd1.size(); j++) {
for (i = 0; i < amd2.size(); i++) {
//tmd[j].push_back(i);
tmd[j][i] = i;
//cout << tmd[j][i] << " ";
}
for (auto Nv : tmd[j]) {
cout << Nv << " ";
}
cout << endl;
}
cout << endl;
return 0;
}
参考链接 [1] https://blog.csdn.net/tjh666/article/details/1604119
[2] http://blog.sina.com.cn/s/blog_5436b2f40100eroh.html
[3] http://blog.csdn.net/tjh666/archive/2007/05/11/1604119.aspx