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;
}
运⾏结果为:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论