C++建立动态二维数组
Posted longshengguoji
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++建立动态二维数组相关的知识,希望对你有一定的参考价值。
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;
运行结果为:
以上是关于C++建立动态二维数组的主要内容,如果未能解决你的问题,请参考以下文章