C++建立動態二維數組主要有兩種方法:
1.使用數組指標,分配一個指標數組,將其首地址儲存在b中,然後再為指標數組的每個元素分配一個數組
int **b=new int*[row]; //分配一個指標數組,將其首地址儲存在b中 for(i=0;i<row;i++) //為指標數組的每個元素分配一個數組 b[i]=new int[col];
該方法定義的動態二維數組的釋放需先釋放指標數組的每個元素指向的數組,然後再釋放該指標數組: for(i=0;i<row;i++)
{
delete [col]b[i];
b[i]=NULL;
}
delete [row]b;
b=NULL;
int _tmain(int argc, _TCHAR* argv[]){int row,column;cin>>row>>column;//方法一//申請空間int ** a = new int *[row];for(int i = 0;i < row;i++)a[i] = new int[column];//使用空間for(int j = 0;j < row;j++)for(int k = 0;k< column;k++)a[j][k] = rand()%100;for(int j = 0;j < row;j++){cout<<endl;for(int k = 0;k< column;k++){a[j][k] = rand()%100;cout<<a[j][k]<<" ";}}//釋放空間for(int i = 0;i < row;i++){delete a[i];a[i] = NULL;}delete [row]a;a = NULL;return 0;}運行結果:
2.利用vector
int _tmain(int argc, _TCHAR* argv[]){int row,column;cin>>row>>column;//方法二//申請空間vector<vector<int> > a(row,vector<int>(column));//使用空間for(int j = 0;j < row;j++)for(int k = 0;k< column;k++)a[j][k] = rand()%100;for(int j = 0;j < row;j++){cout<<endl;for(int k = 0;k< column;k++){a[j][k] = rand()%100;cout<<a[j][k]<<" ";}}return 0;}
運行結果為: