动态生成二维数组

本文介绍了如何使用C++动态创建并初始化二维数组,以及通过向量实现类似功能的步骤与代码示例。重点讨论了内存分配、数据填充和输出过程,旨在提供高效的数据结构管理技巧。
    int x,y;
    scanf("%d%d",&x,&y);
    int** a=new int* [x];
    for(int i=0; i<x; i++)
    {
        a[i]=new int[y];
    }
    for(int i=0; i<x; i++)
        for(int j=0; j<y; j++)
            a[i][j]=i;
    for(int i=0; i<x; i++)
        for(int j=0; j<y; j++)
            printf("%d\n",a[i][j]);


生成一个长度为x的一维指针数组,数组元素是int*指针,每个指针又可以再指向一个一维int数组,这些就相当于生成了一个第一维度为x的二维数组。


  int   i, 
          j, 
          m,   //行数 
          n;   //列数 

  cout   < <   "input   value   for   m,n: "; 
  cin> > m> > n; 
  
  //注意下面这一行:vector <int后两个 "> "之间要有空格!否则会被认为是重载 "> > "。 
  vector <vector <int>   >   vecInt(m,   vector <int> (n));     
  for   (i   =   0;   i   <   m;   i++) 
    for   (j   =   0;   j   <   n;   j++) 
      vecInt[i][j]   =   i*j;   
      
  for   (i   =   0;   i   <   m;   i++) 
  { 
    for   (j   =   0;   j   <   n;   j++) 
      cout < <setw(5) < <vecInt[i][j] < < ": " < <setw(9) < <&vecInt[i][j]; 
    cout < <endl; 
  } 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值