巨大的矢量“挂起”程序? (50000 x 50000个细胞)

时间:2012-05-03 23:15:26

标签: c++ vector multidimensional-array size

我想要一个数组,网格[50000] [50000],我试着用矢量但是当我运行代码时,它会停止。没错。等等。有什么建议吗?

#include <iostream>
#include <vector>

using namespace std;

typedef std::vector<int> IntVec;
typedef std::vector<IntVec> IntGrid;
IntGrid grid(50000, IntVec(50000));

int main(){
  grid[0][0]=3;
  cout<<grid[0][0]<<endl;
}

1 个答案:

答案 0 :(得分:3)

作为一个非常粗略的计算,

50,000行×50,000列×4字节/整数= 10,000,000,000 bytes

除非您的计算机内存超过10 GB,否则内存不足。

您是否可以重写程序以处理较小的数据块,还是使用文件存储不需要立即访问的阵列部分?