获取Map C ++的前10个值

时间:2011-03-19 05:38:32

标签: c++

  

可能重复:
  Sorting a std::map by value before output & destroy

map<string, int> Hosts;

其中包含主机以及访问主机的次数。

如何获取该地图的前X值?

2 个答案:

答案 0 :(得分:1)

我认为如果您使用std::vector<std::pair<std::string, int>并使用std::sort提供自己的compare函数(或仿函数),则可以更轻松地解决此问题。您还可以使用std::map按键排序元素。我认为您不需要按键(string)排序的容器,而是按值(int)排序。

编辑:我刚才注意到,即使是可能的副本也和我说的一样。它使用std::vector,因此您也将其用作:

std::vector<std::pair<std::string, int> Hosts; //Use this instead of map!

答案 1 :(得分:0)

请参阅评论以获取答案。 Sorting a std::map by value before output & destroy

经过一些修改(将for更改为仅转到map.size()),它完美无缺。人们可以投票删除吗?