我定义一个小的二维数组a[1][1]; 然后读取操作文件,从中造出x方向的最大值Xmax,和y方向的最大值Ymax。然后再定义二维数组a[Xmax][Ymax]. (例如:其中Xmax=1044115,Ymax=779710)有方法可以实现吗?
(类似于VB中:
a[1][1]; ReDim a[Xmax][Ymax]
如有请您讲解一下,谢谢! 
(for循环除外)

解决方案 »

  1.   

    你最好用一维数组模拟二维数组:
    int *p;
    p = new int[Xmax * Ymax];
    这样实现起来较为容易,机器码的效率也更高。
      

  2.   

    比较大的数组应该在堆上建立也就是 new 出来
      

  3.   

    那么vector中实现数组的扩充是通过什么方法呢?我不要通过for循环来实现的。
      

  4.   

    可以使用vector::resize:
    vector<int> v(1); // 初始化,预留一个数的空间
    v.resize(Xmax * Ymax); // 重新定义大小
      

  5.   

    我个人认为难以实现;
    怎么定义倒不是问题,数组如果用起来的话,需要占用的空间是1044115*779710*sizeof(int);大概也就3000G的空间吧,内存是肯定不够了,我的硬盘也不够,大概服务器的硬盘有这么大吧!羡慕中...
    一般的问题应该有其它方法解决吧,哪怕分块处理啊。