C++ std::map Schlüssel Art Vergleich-Funktion?

Habe ich eine Klasse, wo ich überlast alle Vergleichsoperatoren. Ich lade eine Reihe von diese Objekte in einer map als Schlüssel-und ich erwarte, dass die Karte, um diese zu Sortieren niedrigsten zum höchsten.

Allerdings, die Karte ist eigentlich sortiert von der höchsten zur niedrigsten. Warum ist das so? Tut Sie es nicht verwenden Sie die Vergleichsoperatoren auf den Schlüssel, wenn es sortiert die Karte? Wie kann ich es tun?

  • Poste bitte den code, Es ist unmöglich zu beantworten, ohne zu sehen, den code.
  • std::map standardmäßig verwendet operator<. Sind Sie sicher, dass Ihre Implementierung von operator< ist nicht rückwärts?
  • Wie sind Sie mit der überprüfung der Bestellung? Können Sie überprüfen die erwartete Bestellung von hand, z.B. cout << obj1 << " < " << obj2 << " is " << boolalpha << (obj1 < obj2) << endl;
InformationsquelleAutor user745668 | 2012-05-21
Schreibe einen Kommentar