stl map排序,c++如何根据value值对map排序
标准模板库中地图按值(值)排序-万鹏编码器-博客频道CSDN .网
标准模板库中地图按值(值)排序
分类:
C/C
2010-11-06 14:45
912人阅读
评论(0)
收藏
举报文中的部分内容参考自互联网,感谢作者。
地图默认是按照键(关键)排序的。很多时候我们需要按值(值)排序,靠地图里的
算法当然是不行的,那么可以把它转存到矢量中,在对矢量按照一定的规则排序即可。
[cpp:显示列]查看plaincopyprint?
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150//示例代码:输入单词,统计单词出现次数并按照单词出现次数从多到少排序# include cstdlib # include map # include vector # include string # include algorithm # include iostream voidsortMapByValue(STD:map STD:string,int tMap,STD:vector STD:pair STD:string,int t vector);int CMP(conststd:pair std:string,int x,const STD:pair STD:string,int y);intmain(){std:map std:string,int tmap STD:string word;while(STD:CIN词){ STD:pair STD:map STD:string,int :iterator,bool ret=tmap。insert(STD:make _ pair(word,1));如果(!ret。第二)ret。第一-第二;} STD:vector STD:pair STD:string,int tVectorsortMapByValue(tMap,t vector);for(inti=0;向量。size();I){ STD:cout TV vector[I].first : tVector[i].第二STD:endl;}系统(暂停);return 0 } int CMP(conststd:pair std:string,int x,const STD:pair STD:string,int y){ returnx。秒y秒;} voidsortMapByValue(STD:map STD:string,int tMap,STD:vector STD:pair STD:string,int t vector){ for(STD:map STD:string,int:iterator curr=tMap。begin();curr!=tmap。end();curr){ t向量。push _ back(STD:make _ pair(curr-first,curr-second));}std:sort(tVector.begin()、tVector.end()、CMP);}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。