发新话题
打印

stl的map<>类如何排序

stl的map<>类如何排序

stl的map<>类如何排序:confused:
如:
map<string,int> word;
words["apple"]=2;
words["pear"]=1;
words["melon"]=8;

以string 和 int 分别排序后输出
如何实现


:confused:      

TOP

:rolleyes:      

TOP

A

A      

TOP

map 本身就是按照 key 排序的,不用 sort      
-----------------------------------------
http://www.darkspy.org/blog

自大的人把宗教当迷信,无知的人把迷信当宗教

TOP

按string排序输出方法(因为map自动是用string排序存放的):
复制内容到剪贴板
代码:
for(map<string,int>::iterator it=word.begin(); it != word.end(); ++it)
        cout << iter->first << "   " << iter->second << endl;
按int排序输出方法:
复制内容到剪贴板
代码:
vector< pair<string,int> > wd(word.begin(), word.end());
bool Cmp(const pair<string,int> &p1, const pair<string,int> &p2)
{
        return p1.second < p2.second;
}
sort(wd.begin(), wd.end(), Cmp);
for(vector< pair<string,int> >::iterator it=wd.begin(); it != wd.end(); ++it)
        cout<< iter->first << "   " << iter->second << endl;
      

TOP

发新话题