1

配列grid[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;
}
4

1 に答える 1

3

非常に大まかな計算として、

50,000行×50,000列×4バイト/整数= 10,000,000,000 bytes

コンピュータに10GBを超えるRAMが搭載されていない限り、メモリが不足しています。

プログラムを書き直して、データの小さなチャンクを処理したり、ファイルを使用して、すぐにアクセスする必要のない配列の部分を格納したりできますか?

于 2012-05-03T23:23:25.920 に答える