map容器按值(value)排序

众所周知,map映射是(key-value)的形式,map自带为key排序,但是很多时候我们想让map按value排序,这时,我们可以借助vector



bool cmp(const PAIR& x, const PAIR& y)
{
	return x.second > y.second //降序 
}
typedef pair<string, int> PAIR
map<string, int> mp;



vector<PAIR> v(mp.begin() ,mp.end() );
sort(v.begin(), v.end(), cmp);

这时,排好序的mp已经用pair的形式放在v向量中了,可以通过
v[i].first,v[i].second 来分别访问string和int(key-value)了

你可能感兴趣的:(模板,acm竞赛)