将采取最小数据的示例std::map
。
我有2个映射如下:找到超过1个(多个)'std :: map's'或'std :: set'键的最佳方法?
map<string, Object*> map_ShortKey; // keys are single English words
map<string, Object*> map_LongKey; // keys are concatenated English words
的map_ShortKey
在周围50个元素的节目的开始被填充并在整个保持恒定。但整个计划中的map_LongKey
不断增加,它可能会上升到1000-10000个元素。
当我想在这些地图内搜索一个单词时,最好的方法是什么?
(1)先搜索map_ShortKey
,如果找不到,则搜索m_LongKey
。
(2)添加到map_ShortKey
和m_LongKey
然后搜索
第一:措施。第二:措施。第三:措施。 –
也许最好的是(3)管理第三张地图:总是包含两者的'map_ShortAndLongKey'。取决于搜索频率与添加到map_LongKey中的频率。 –
@DidierTrosset,这是关于解析一个随机文件,我不确定测量/分析数据在这种情况下总是可靠的。我想知道以上两种方法的平均表现,如果有人从过去的经验中获得了方便的知识,那么这太棒了! – iammilind