假设我有一个 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/