我需要處理最多1億行和30列的數據表(2D)。表格元素只包含0,1和破折號( - )。該表格以文本文件形式發給我。我具有本數據存儲到一些數據結構和執行像排序該表中,刪除行,比較元件(無論是在不同的行和列)操作等用於在C++中存儲超大型2D數據的數據結構
目前我使用此一2D向量。我嘗試使用整數向量和位向量。兩者都適用於10mil行和25列,但都不適用於上述最大限制(我有一個壞分配)。
我假設這是因爲矢量需要連續的內存。什麼纔是正確的數據結構呢?時間安排也是我的考慮因素之一,同時也需要較低的訪問時間。另外,如果一個矢量實際上是正確的數據結構,是否有更好的實現可以用來實現這個工作?我必須堅持C++,不能使用數據庫和東西。
非常感謝!
如果你可以設計一個方案來收拾你的tribool分成2個存儲位,你需要大約2.25GB的存儲空間。如果你要爲你的tribool使用一個完整的字節,你需要大約9GB。 – Anycorn