众所周知,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)了