如何根据 std::map 的值获取前 n 个键?有没有办法让我得到一个列表,例如前 10 个键值最大的键值?
假设我们有一张类似这样的地图:
mymap["key1"]= 10;
mymap["key2"]= 3;
mymap["key3"]= 230;
mymap["key4"]= 15;
mymap["key5"]= 1;
mymap["key6"]= 66;
mymap["key7"]= 10;
而且我只想列出与另一个相比价值更大的前 10 个键。例如,我们的 mymap 的前 4 名是
key3
key6
key4
key1
key10
注意:
这些值不是唯一的,实际上它们是每个键的出现次数。我想获取最常出现的键的列表
注意 2:
如果 map 不是一个好的候选者并且您想提出任何建议,请按照 c++11 进行,我当时无法使用 boost。
注意3:
如果使用std::unordered_multimap<int,wstring>
我还有其他选择吗?