пятница, 16 сентября 2011 г.

Snippet for sorting map by values in C++

#include < algorithm >
#include < iostream >
#include < map >
#include < string >
#include < vector >

using namespace std;

typedef pair mypair;

struct IntCmp {
    bool operator()(const mypair &lhs, const mypair &rhs) {
        return lhs.second < rhs.second;
    }
};

int main() {
   map m;
   m["A"] = 5;
   m["B"] = 1;
   m["C"] = 2;
   m["D"] = 4;
   vector v(m.begin(), m.end());
   partial_sort(v.begin(), v.begin() + m.size() - 1, v.end(), IntCmp());

    for (int i = 0; i < m.size(); i++)  {
        cout << i << ": " << v[i].first << " --> " << v[i].second << "\n";
    }
}

Комментариев нет:

Отправить комментарий