1.普通方法创建二维数组:
二维数组的声明:
对于一维数组来说,数组的大小可以省略,但对于二维数组,C++规定,在声明和初始化二维数组时,只有第一维(行数)可以省略。
合法的声明有:
int a[2][3];
int a[][3];
不合法的声明:
int a[][];
int a[2][];
二维数组的初始化:
可以在声明时初始化:
int a[2][3] = {{1,2,3},{4,5,6}};
int a[2][3] = {1,2,3,4,5,6};
也可以部分赋值:
int a[2][3] = {{1,2},{}}; //未赋值的默认为零
int a[2][3] = {0}; //初始化全部为零
但是不能先声明在全部赋值,即下面的方式是错误的:
int a[2][3];
a[2][3] = {{1,2,3},{4,5,6}};
求二维数组元素的总数计算方法为:
int number = sizeof(a)/sizeof(int);
求二维数组行数的计算方法为:
int row = (sizeof(a)/sizeof(int))/(sizeof(a[0])/sizeof(int));
求二维数组列数的计算方法为:
int column = sizeof(a[0])/sizeof(int);
2. 可以使用vector创建二维数组:
初始化方法:
方法1:
vector<vector<int>> array;
vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
vector<int> b;
b.push_back(4);
b.push_back(5);
b.push_back(6);
array.push_back(a);
array.push_back(b);
方法2:
//生成一个2*3的二维数组
vector<vector<int> > array(2);
for(int i=0;i<array.size();i++)
{
array[i].resize(3);
}
for (int i=0;i<array.size();i++)
{
for (int j=0;j<array[0].size();j++)
{
int temp;
cin>>temp;
array[i][j] = temp;
}
}
计算vector二维数组的行:
array.size()
计算vector二维数组的列:
array[0].size()
遍历vector生成的二维数组:
void reverse_array(vector<vector<int> > array)
{
if (array.empty())
{
cout<<"The array is empty!\n";
return;
}
for (int i=0;i<array.size();i++)
{
for (int j=0;j<array[0].size();j++)
{
cout<<"The "<<i+1<<"-th row "<<j+1<<"-th column is "<<array[i][j]<<endl;
}
}
}