问题在于:我有一定数量的单词(假设20M),每个单词都包含一些用作标志的位;全部存储在单个连续二进制文件中。
我想要做的是访问容器中的那些单词,如样式,因此container_instance[i]
允许我访问 i-th 单词。为了使事情变得更复杂,我不能一次将所有单词存储在内存中,它们必须存储回文件并释放那些长时间未使用的内存。为了简化事情,整个序列被划分为1K片段,因此我们需要释放并分配这样的1K块。一段时间后或在访问容器一定次数后,应释放内存。
线程安全很好。但我可以从外部保护。
我目前的实现只按需分配块(如果可用,则为空或从文件读取;文件不稀疏,因此文件中最后一个字节之后的所有内容都被分配为空)并且不能很好地完成。根本不会释放,因此未使用的块永远保留在内存中。
我开始考虑好看的解决方案,我想知道STL或Boosts中的任何元素是否可以帮助我构建这样的容器,而不是从头开始逐步雕刻它?
我不期待完整的解决方案,而是指出“你可以使用那个 那个”。