我昨天发布了一个问题,我使用 multi_map 解决了这个问题: Having a composite key for hash map in c++
这很有效,但是当数据足够大时就会出现问题。
我的数据集大约有 10M 大,使用有序索引需要 +350 秒,插入哈希索引(无序)需要 80 秒。
与仅花费 25 秒的 map(pair, double) 数据结构相比,这是相当长的时间。
有人知道提高计算速度吗?内存消耗还可以,但速度对我来说真的很重要。
最佳答案
将索引添加到 multi_index_container
以插入时间为代价:粗略地说,如果您有四个索引,插入速度与插入四个不同的单索引映射一样慢(实际上它更快,如您的数字所示,因为 80 < 4*25。)
在您的特定情况下,您可以摆脱最后一个索引:只需使用复合键作为您的第一个索引,因为它将支持 lang1-only 支持以及 (lang1,lang2) 查询。
关于c++ - 升压::多索引。更快的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552093/