对于硬盘存储的情况,我需要一个基于红黑树的muti索引容器(类似boost::multi_index::multi_index_container
)。所有数据必须存储在硬盘上而不是存储在内存中。
是否有一个开源容器,以便描述条件成立?
请注意。我使用C++
。
答案 0 :(得分:1)
如果您有内存解决方案,则可以使用内存映射文件和自定义分配器来实现持久存储。
答案 1 :(得分:1)
我恐怕不知道。
对于硬盘存储,我只建议查看STXXL,它提出了适用于只能放在磁盘上的数据的STL容器和算法。他们已经实现了很多东西以允许更平滑的操作,主要是通过尽可能地在内存中缓存并尽可能延迟磁盘访问。
现在这不会给你一个多索引,但至少你会有一个STL:)
然后,如果您确定了,您可以移植多索引以使用STXXL提供的功能:它们与容器本身的IO访问/内存缓存相关联。
或者您可以根据符合STL标准的容器简单地编写您需要的内容。
答案 2 :(得分:1)
SQLite怎么样?它可以使用磁盘作为后备存储,并支持多个数据索引,如Boost Multi Index那样。