2012-04-21 13 views
2

6227020800要素のベクトルを割り当てる必要があります。通常の呼び出しのためのその明らかに大きすぎる:ベクトル用に大量の領域を割り当てる

vector<int> largevector(6227020800) 

私は新しいし、そのためにそのさえ大きすぎる使用してみました:

vector<int> largevector= new vector<int>[6227020800] 

はその大きなベクトルを割り当てる方法はありますか?

+5

64ビットOSを搭載した64ビットマシンにお使いですか?あなたは64ビット用にコンパイルしていますか?それほど記憶がありますか? – Mysticial

+0

いいえ、32ビット..... –

+0

まあ、できません。 :(そのコードには24 GBのメモリが必要ですが、32ビットは最大で2〜4 GBが許されます) – Mysticial

答えて

4

stxxlライブラリをご覧ください。

0

の場合、実際にはに十分なスペースが必要な場合は、ファイルをランダムアクセスイテレータのように見せるクラスを作成することを検討してください。高速化するために、キャッシュのように動作する64M程度のローカルバッファが含まれているようにしてください。

関連する問題