我必须实现一个给定固定长度的代码。每个代码都是一个整数序列,考虑到一些模式是常见的,我决定实现一个Trie来存储所有代码。 我还需要迭代代码,因为它们是按字典顺序排列的,并且我希望能够使用数百万(甚至数十亿)的代码。
这就是我考虑将这个特定的Trie实现为字典的原因,其中每个键都是给定前缀的索引。 让我们说密钥0有一个他的前缀子列表,每一个我保存字典上的相应条目... 示例:如果我的第一次插入是代码231,那么字典将如下所示:
[0]->{(2,1)}
[1]->{(3,2)}
[2]->{(1,3)}
这样,如果我的第二次插入是243,那么字典将以这种方式更新:
[0]->{(2,1)}
[1]->{(3,2),(4,3)} *Here each list is sorted using a flat_map
[2]->{(1,endMark)}
[3]->{(3,endMark)}
我的问题是我一直在使用这个purpuse的向量,因为在contiguos内存中拥有所有字典可以让我在迭代时获得更好的性能。 现在,当我需要处理我的问题的BIG实例时,由于调整向量的大小,我无法使用数百万个代码(内存消耗可能高达200GB)。 现在我已经尝试了谷歌的稀疏散列内容,我的问题是,你有什么建议吗?还有其他选择吗?有没有其他方法可以使用整数作为提高性能的关键? 我知道我不会发生任何碰撞,因为每把钥匙都会与其他钥匙不同。
祝你好运, 昆汀