zoukankan      html  css  js  c++  java
  • C++实现按照map的value排序

    //功能:输入单词,统计单词出现次数并按照单词出现次数从多到少排序  
    #include <iostream>
    #include <cstdlib>  
    #include <map>  
    #include <vector>  
    #include <string>  
    #include <algorithm>  
    
    using namespace std;
       
    int cmp(const pair<string, int>& x, const pair<string, int>& y)  
    {  
        return x.second > y.second;  
    }  
       
    void sortMapByValue(map<string, int>& tMap,vector<pair<string, int> >& tVector)  
    {  
        for (map<string, int>::iterator curr = tMap.begin(); curr != tMap.end(); curr++)   
            tVector.push_back(make_pair(curr->first, curr->second));    
       
        sort(tVector.begin(), tVector.end(), cmp);  
    }  
    int main()  
    {  
        map<string, int> tMap;  
        string word;  
        while (cin >> word)  
        {  
            pair<map<string,int>::iterator,bool> ret = tMap.insert(make_pair(word, 1));  
            if (!ret.second)  
                ++ret.first->second;  
        }   
       
        vector<pair<string,int>> tVector;  
        sortMapByValue(tMap,tVector);  
        for(int i=0;i<tVector.size();i++)  
            cout<<tVector[i].first<<": "<<tVector[i].second<<endl;  
       
        system("pause");  
        return 0;  
    } 
    
  • 相关阅读:
    集合合并
    非递减有序集合合并
    有序的双链表的实现
    单链表的实现
    构造有序的单链表
    约瑟夫环问题
    javaweb学习笔记
    Intellij IDEA快捷键
    JAVA:创建类和对象
    JAVA:成员变量和局部变量的区别
  • 原文地址:https://www.cnblogs.com/LMIx/p/14703851.html
Copyright © 2011-2022 走看看