分享

C++建立动态二维数组

 520jefferson 2015-04-27

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;
  1. int _tmain(int argc, _TCHAR* argv[])  
  2. {  
  3.     int row,column;  
  4.     cin>>row>>column;  
  5.   
  6.     //方法一  
  7.     //申请空间  
  8.     int ** a = new int *[row];  
  9.     for(int i = 0;i < row;i++)  
  10.         a[i] = new int[column];  
  11.   
  12.     //使用空间  
  13.     for(int j = 0;j < row;j++)  
  14.         for(int k = 0;k< column;k++)  
  15.             a[j][k] = rand()%100;  
  16.   
  17.     for(int j = 0;j < row;j++)  
  18.     {  
  19.         cout<<endl;  
  20.         for(int k = 0;k< column;k++)  
  21.         {  
  22.             a[j][k] = rand()%100;  
  23.             cout<<a[j][k]<<"     ";  
  24.         }  
  25.     }  
  26.           
  27.     //释放空间  
  28.     for(int i = 0;i < row;i++)  
  29.     {  
  30.         delete a[i];  
  31.         a[i] = NULL;  
  32.     }  
  33.     delete [row]a;  
  34.     a = NULL;     
  35.   
  36.     return 0;  
  37.       
  38. }  
运行结果:

2.利用vector

  1. int _tmain(int argc, _TCHAR* argv[])  
  2. {  
  3.     int row,column;  
  4.     cin>>row>>column;  
  5.   
  6.     //方法二  
  7.     //申请空间  
  8.     vector<vector<int> > a(row,vector<int>(column));  
  9.       
  10.   
  11.     //使用空间  
  12.     for(int j = 0;j < row;j++)  
  13.         for(int k = 0;k< column;k++)  
  14.             a[j][k] = rand()%100;  
  15.   
  16.     for(int j = 0;j < row;j++)  
  17.     {  
  18.         cout<<endl;  
  19.         for(int k = 0;k< column;k++)  
  20.         {  
  21.             a[j][k] = rand()%100;  
  22.             cout<<a[j][k]<<"     ";  
  23.         }  
  24.     }         
  25.       
  26.     return 0;  
  27.       
  28. }  

运行结果为:


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多