Es ist nicht dokumentiert (and it's a mistake, I think), aber in Sie können die qMapLessThanKey
Template-Funktion für Ihre Typen (vgl the source) spezialisiert sind. Das erlaubt Ihren Typ eher eine andere Funktion zu verwenden, als operator<
:
template<> bool qMapLessThanKey<int>(const int &key1, const int &key2)
{
return key1 > key2; // sort by operator> !
}
Dennoch std :: map hat den Vorteil, dass Sie einen anderen Komparator pro jeder Karte angeben können, während hier kann man nicht (Alle Karten, die deinen Typ verwenden, müssen diese Spezialisierung sehen, sonst wird alles auseinanderfallen.