我想要一个数组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,否则您的内存不足。
您是否可以重写程序以处理较小的数据块,或使用文件存储不需要立即访问的数组部分?