代码之家  ›  专栏  ›  技术社区  ›  Alexey Malistov

是否有用于硬盘存储而非内存的多索引容器?

  •  0
  • Alexey Malistov  · 技术社区  · 15 年前

    我需要一个基于红黑树的多索引容器(类似 boost::multi_index::multi_index_container )对于硬盘存储的情况。所有数据必须存储在硬盘上,而不是内存中。

    是否有一个开放源代码容器可以满足所描述的条件?

    笔记我使用 C++ .

    3 回复  |  直到 15 年前
        1
  •  1
  •   Sliq    15 年前

    如果有内存中的解决方案,可以使用内存映射文件和自定义分配器来实现持久存储。

        2
  •  1
  •   Matthieu M.    15 年前

    恐怕我什么都不知道。

    对于硬盘存储,我只能推荐 STXXL ,它提出了STL容器和算法,这些容器和算法适用于只能放在磁盘上的数据。他们已经实现了许多允许更平滑的操作的东西,基本上是通过尽可能多地在内存中缓存和尽可能延迟磁盘访问。

    现在,这不会为您提供多索引,但至少您会有一个STL:)

    然后,如果确定了,可以移植多索引以使用STXXL提供的功能:它们已将IO访问/内存缓存与容器本身分离。

    或者,您可以简单地根据STL兼容容器编写所需内容。

        3
  •  1
  •   John Zwinck    14 年前

    怎么样 SQLite ? 它可以使用磁盘作为后备存储,并支持数据的多个索引,就像Boost多索引一样。

    推荐文章