map nach Wert sortieren???



  • Hallo,

    kann ich eine Map nach ihrem Wert anstatt des Schlüssels sortieren?

    eigentlich wollte ich einen Funktor angeben und less überladen...
    in etwa so:

    map<CBlaBla*, double, sort_nach_wert> m
    

    Da aber sort_nach_wert von less abgeleitet werden muss und less nach dem Schlüssel als Templateargument verlangt, habe ich an der Stelle keine Chance oder???

    Gibt es andere Möglichkeiten?

    Danke.



  • sort_nach_wert muss nicht von less abgeleitet sein. Aber das du nur den Schlüssel vergleichst stimmt.

    hmm, du könntest aber einfach folgendes machen

    struct sort_set {
      bool operator()(const std::pair<std::string,int> &a,
                      const std::pair<std::string,int> &b) {
        return a.second<b.second;
      }
    };
    
    int main() {
      std::set<std::pair<std::string,int>,sort_set> foo;
      //...
    }
    

Anmelden zum Antworten