我的数据在概念上看起来像:
"BLUE" : (3 , 10, 15, 1220, 44040)
"RED" : (44, 523, 122143, 323233)
"BANANA" : (....)
构建时间并不重要。对于我有多个键的查找,我想组合所有值列表并对它们进行排序;我应该将其表示为 C++ 中的 map 还是多重 map 以获得最快的结果?
换句话说,由于附加到键的值 vector 是可变长度的,我应该有一个带有 key:vector 的映射,还是带有 key1:int1、key1:int2 等的 multimap?
目的是编写一个函数,其中输入 = (key1, ...., keyN),输出是所有值的排序列表。
最佳答案
map<string, vector<int>>
解决方案更容易理解和编码,并且可能更有效,在空间方面,因为您将值组安排到连续存储中,而不是为每个值创建一个节点。出于同样的原因,它在算法上可能也更有效。
关于用于多键查找的 C++ map 与 multimap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750346/