【问题标题】:Get The Top 10 Values of a Map C++ [duplicate]获取地图 C++ 的前 10 个值 [重复]
【发布时间】:2011-03-19 05:38:31
【问题描述】:

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

map<string, int> Hosts;

其中包含主机和访问该主机的次数。

如何获得该地图的前 X 个值?

【问题讨论】:

  • 我发现我伤心地发了之后,正在尝试中。
  • 经过一些修改(将 for 更改为仅转到 map.size())后,它可以完美运行。人们可以投票删除吗?
  • 话题停留没问题。也许,它会出现在搜索结果中,从而对其他人有所帮助!
  • 如果您没有立即找到它,这意味着指向原始主题的另一个指针值得保留。所以我们将把它作为重复项关闭,这样人们就会被重定向:)

标签: c++


【解决方案1】:

我认为如果你使用std::vector&lt;std::pair&lt;std::string, int&gt; 并使用std::sort 提供你自己的compare 函数(或函子),那将更容易解决这个问题。您还可以使用std::map,它按元素的键对元素进行排序。我认为您不需要按键 (string) 排序的容器,而是按值 (int) 排序的容器。

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

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

【讨论】:

    【解决方案2】:

    请参阅 cmets 以获得答案。 Sorting a std::map by value before output & destroy

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

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 2013-03-04
      • 2018-07-07
      • 2020-03-31
      • 2016-03-11
      • 2013-05-20
      • 2012-06-09
      • 2012-12-22
      • 1970-01-01
      相关资源
      最近更新 更多