我喜歡使用STL開發算法,但是,我有這種反覆出現的問題,即我的數據集對於堆太大。磁盤支持的STL容器類?
我一直在尋找STL容器和算法的磁盤替換,這些容器和算法是磁盤備份的,即存儲在磁盤上而不是堆上的數據結構。
一位朋友最近指出我朝着stxxl。在我參與其中之前......我應該考慮是否有其他支持磁盤的STL替代品?
注意:我對持久性或嵌入式數據庫不感興趣。請不要提及boost :: serialization,POST ++,關係模板庫,Berkeley DB,sqlite等。我知道這些項目,並在適合我的目的時使用它們。
更新:有幾個人都提到內存映射文件,並使用自定義分配器,好的建議BTW,但我想他們指出大衛亞伯拉罕表明,將需要對磁盤備份容器定製迭代器的討論here 。這意味着自定義分配器方法不太可能奏效。
如果你的數據集對於堆太大,你應該考慮你的系統體系結構是否正確(例如,是否移動到64位系統;現在比問問題時更常見)。你還應該考慮STL是否是正確的方法;它可能會對數據集大小做出假設,而這些假設並不適合您。 – 2010-12-01 06:15:14
@Donal他可能不會保留正確的內存量。 – 2011-03-09 22:58:54