map按自己的要求对key排序的方法:
// key从高到低
map<T1, T2, greater<T1> > m1;
// 根据长度排序
struct CmpByKeyLength {
bool operator()(const T& k1, const T& k2) {
return k1.length() < k2.length();
}
map<T1, T2, CmpBykeyLength<T1>> m2
};
// 根据value排序
typedef pair<T1, T2> PAIR;
bool cmp_by_value(const PAIR& lhs, const PAIR& rhs) {
return lhs.second < rhs.second;
}
struct CmpByValue {
bool operator()(const PAIR& lhs, const PAIR& rhs) {
return lhs.second < rhs.second;
}
};
map<T1, T2> m3;
vector<PAIR> v3(m3.begin(), m3.end());
sort(name_score_vec.begin(), name_score_vec.end(), CmpByValue());
sort(name_score_vec.begin(), name_score_vec.end(), cmp_by_value);
参考自:http://blog.csdn.net/iicy266/article/details/11906189