boost::multi_index::multi_index_container
对于硬盘存储,我需要一个基于红黑树(类似于 )的多索引容器。所有数据必须存储在硬盘上而不是内存中。
是否存在符合所述条件的开源容器?
笔记。我用C++
.
boost::multi_index::multi_index_container
对于硬盘存储,我需要一个基于红黑树(类似于 )的多索引容器。所有数据必须存储在硬盘上而不是内存中。
是否存在符合所述条件的开源容器?
笔记。我用C++
.
SQLite怎么样?它可以使用磁盘作为后备存储,并支持数据的多个索引,就像 Boost Multi Index 一样。
如果您有内存解决方案,则可以使用内存映射文件和自定义分配器来实现持久存储。
恐怕我一个都不知道。
对于硬盘存储,我只能推荐STXXL,它提出了适用于只能存储在磁盘上的数据的 STL 容器和算法。他们已经实现了很多东西来实现更流畅的操作,主要是通过尽可能多地缓存在内存中并尽可能延迟磁盘访问。
现在这不会给你一个多索引,但至少你会有一个 STL :)
然后,如果您确定,您可以移植多索引以使用 STXXL 提供的工具:它们已将 IO 访问/内存缓存与容器本身解除关联。
或者您可以简单地根据他们的 STL 兼容容器编写您需要的内容。