zoukankan      html  css  js  c++  java
  • C++中实现对map按照value值进行排序

    C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客

    C++中实现对map按照value值进行排序
    2012-03-15 15:32:36

    map的两个值分别为key值和value值,map是按照key值进行排序的,但有时候需要按照value值进行排序,并且按照value的顺序输出key值,排序代码如下:

     

    1. typedef pair<string, int> PAIR;  
    2. int cmp(const PAIR& x, const PAIR& y)  
    3. {  
    4.     return x.second > y.second;  
    5. }  
    6.  
    7. map<string,int> m;  
    8. vector<PAIR> vec;  
    9. for (map<wstring,int>::iterator curr = m.begin(); curr != m.end(); ++curr)  
    10. {  
    11.     vec.push_back(make_pair(curr->first, curr->second));  
    12. }  
    13. sort(vec.begin(), vec.end(), cmp); 

    将map的key和value组成一个新的结构PAIR,一个PAIR型的vector存储map中的所有内容,对vecor按照value值进行排序。按顺序输出key:

     

    1. for(vector<PAIR>::iterator curr = vec.begin(); curr != vec.end(); ++curr)  
    2.         {  
    3.             cout<<(*curr).first<<endl;  
    4.             countnum++;  
    5.             o_file<<(*curr).first<<' ';  
    6.  
    7.         } 

     

  • 相关阅读:
    团队冲刺第四天
    团队冲刺第三天
    团队冲刺第二天
    冲刺(六)
    冲刺(五)
    冲刺(四)
    冲刺(三)
    冲刺(二)
    冲刺(一 )
    第一阶段SCRUM
  • 原文地址:https://www.cnblogs.com/lexus/p/3524231.html
Copyright © 2011-2022 走看看