一尘不染

磁盘支持的STL容器类?

algorithm

我喜欢使用STL开发算法,但是,我经常遇到这样的问题,即我的数据集对于堆来说太大了。

我一直在寻找磁盘支持的STL容器和算法的直接替代,即存储在磁盘而不是堆上的数据结构。

最近有一个朋友将我指向stxxl。在我太忙之前…我是否应考虑其他磁盘支持的STL替代产品?

注意:我对持久性或嵌入式数据库不感兴趣。 请不要提及boost :: serialization,POST ++,关系模板库,Berkeley
DB,sqlite等。我知道这些项目,并在适合我的目的时使用它们。

更新:有人提到了内存映射文件并使用了自定义分配器,这是不错的建议,但我要在
这里
进行讨论,David
Abraham建议磁盘支持的容器需要自定义迭代器。这意味着自定义分配器方法不太可能起作用。


阅读 272

收藏
2020-07-28

共1个答案

一尘不染

我已经实现了一些非常相似的东西。实现迭代器是最具挑战性的。我使用 boost ::
iterator_facade

来实现迭代器。使用boost::iterator_facade该工具,可以 轻松地将 磁盘上 缓存的任何 数据结构调整
为具有STL容器接口。

2020-07-28