c++ - 根据值对 map 进行排序

标签 c++ map

假设我有一个 std::map<std::string,int>此 map 存储一个 ID 以及一个债务金额。 我想知道是否有办法从 map 中获取 5 个最高 (int) 值。 我知道我可以遍历 map 并进行自定义排序,但是是否有自定义算法可以帮助我完成此操作?最有效的方法是什么?

最佳答案

仅当您在插入 map 并维护 map 时将它们保存在另一个地方。 map 只是 map .... 获得最高的 5 将是 o(N) 在 map 上。如果你在插入时管理它们,你可以在 o(1) 中完成

关于c++ - 根据值对 map 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200694/

相关文章:

google-maps - 计算在Google map 上绘制的多边形的面积

scala - 映射与路径相关的值类型?

c++ - 通过相对路径c++ cmake guest查找单元测试的外部测试文件

C++:替换我们有迭代器的 std::unordered_set 中的元素

c++ - 使用 Chromium 作为 MFC CWnd

C++ 使用 std::map 计算实例/直方图

c++ - 切换模板类型

c++ - C++ 中的小数位和 Pow 函数

c++ - 如何将结构对齐到指定大小

使用 Jackson 对带有循环引用的键进行序列化