C++二維陣列建立以及行列的求法
阿新 • • 發佈:2019-02-10
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;
}
}
}