C++映射与用于多关键字查找的多映射
C++ map versus multimap for multi-key lookup
我的数据在概念上看起来像:
"BLUE" : (3 , 10, 15, 1220, 44040)
"RED" : (44, 523, 122143, 323233)
"BANANA" : (....)
构建时间并不重要。对于具有多个键的查找,我希望将所有值列表组合在一起,并对它们进行排序;为了获得最快的结果,我应该在C++中将其表示为映射还是多映射?
换句话说,由于附加到键的值向量是可变长度的,我应该有一个带有key:vector的映射,还是带有key1:int1、key1:int2等的多映射?
目的是编写一个函数,其中input=(key1,….,keyN),输出是所有值的排序列表。
map<string, vector<int>>
解决方案更易于理解和编写代码,而且可能更高效,因为您将值组排列到连续存储中,而不是为每个值创建一个节点。出于同样的原因,它可能在算法上也更高效。
如果在进行任何查找之前只填充一次,最好的方法是在填充后对向量进行排序:vector<pair<string, int> >
。
相关文章:
- 如何在多映射的字符串中查找子字符串
- 由并发无序映射查找线程调用的函数是否安全?
- if else VS映射查找
- std::使用迭代器映射查找距离,程序不会终止
- 将长位数组映射到查找表
- C++ 映射查找值和关联的键
- c 映射::查找或映射:: iterator,它是更有效的W.R.T复杂性
- 性能映射 C++ 查找(G++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3))
- 如何遍历 STL 映射(查找所有可能的对)
- 使用映射 c++ 查找矢量的多种模式
- 映射查找函数调用 Vs 将查找缓存为静态变量
- C++多映射查找失败
- 如何优化无序映射查找
- C++ 映射查找找不到特定键
- STL哈希表[无序映射]查找性能与大小
- 使用映射查找具有给定和(带有负数)的子数组
- TBB 并发哈希映射查找和插入
- 定时矢量与映射与未定义映射查找
- c++使用无序键组合进行映射查找
- STL映射查找第一个不可重复的字符