我想要一个数组grid [50000] [50000],我尝试使用 vector ,但是当我运行代码时,它停止了。没错只是等待。有什么建议吗?

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

最佳答案

作为非常粗略的计算,

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

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

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

10-07 16:43