1

I want to have an array, grid[50000][50000], i tried to do with vector but when i run the code, it stops. No error. Just waits.Any suggestions?

#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;
}
4

1 回答 1

3

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

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

除非您的计算机具有超过 10 GB 的 RAM,否则您的内存已用完。

你可以重写你的程序来处理更小的数据块,或者使用一个文件来存储不需要立即访问的数组部分吗?

于 2012-05-03T23:23:25.920 回答