1. 程式人生 > >c++中map按value值排序

c++中map按value值排序

int cmp(const pair<string, int>& x, const pair<string, int>& y)   //定義sort排序方式
{
    return x.second > y.second;

}

int main() {

    map<string, int, greater<string> > show_map_ans;

    typedef pair<string, int> PAIR;

    vector<PAIR> show_map_ans_vec(show_map_ans.begin(), show_map_ans.end());//把map裡面的元素放到vector中
    sort(show_map_ans_vec.begin(), show_map_ans_vec.end(),cmp);//用sort進行排序

    for (int i = 0; i != show_map_ans_vec.size(); ++i) {//輸出元素
        cout << show_map_ans_vec[i].first<<" "<<show_map_ans_vec[i].second <<endl;
        }

}