按值的降序对 C++ 中的 Map<string,int> 进行排序
Sort a Map<string,int> in C++ in descending order of Value
我需要按出现次数的降序对Map(Key=Word,Value=CountofWord)进行排序,并打印Map中的前10个单词。做到这一点的最佳方法是什么?
我的想法是构建一个多映射(Key=CountofWord,Values=Words),然后打印多映射的前10个元素。但这将占用O(n)额外的空间。
还有其他优化的解决方案吗?
只是要指出,您提出的解决方案没有考虑到两个单词计数可以具有相同的值,因此两个单词将映射到同一个键并覆盖最后一个键。
相反,您可以使用成员变量(word为string,count为int)创建一个单词类,并实现<运算符,允许通过std::sort方法对对象进行排序。提到http://www.cplusplus.com/reference/algorithm/sort/.
相关文章:
- 如何使用 uint64_t 键类型从 std::map<int, std::string> 返回值?
- 两个数组,int 和 string,如何显示带有对应 int 的字符串?
- <string> 如何在使用 SWIG 时将 int 数组和 List 作为参数传递给 C# C++
- OpenCV undefined reference to 'cv::imread(cv::String const&, int)'
- map<string, int> m= {}; 在C++中是什么意思?
- 如何从map<pair<string,int>,pair<string,Array>>中迭代和查找?
- C++将文件行分离为String和Int
- 与 string.size() 比较时 int 的符号性显示警告
- freq_table[field_pm_value] = map<string, int>(); 是什么意思?
- 将 int 附加到 std::string
- 如何在一对集合的向量中插入元素?vector<pair<int,set<string>>>
- 按值对 std::unordered_map<std:::string, std::atomic<unsigned int>> 进行排序
- 在 C++03 中将 std::string 转换为 int
- 方括号在"map <string, int> instance[numberFeatures];"中是什么意思
- 如何使用 c++ 中的 int* count(const string&s)计算字符串中每个数字的出现次数?
- 如果可以将其放在私有中,为什么要使用静态常量(int/string/.)?
- 在字节数组存储中嵌入 int/string
- c++中从double/int/string到bool的自动转换
- c++ string (int) + string (int)
- 如何在int,string类型的映射上使用find