Schlüssel für std::map: Anforderungen und Implementierung
Bei der Verwendung von std::map zum Zuordnen von Objekten verschiedener Klassen wird die Klasse, die Sie verwenden als Schlüssel verwenden möchten, erfüllen möglicherweise nicht die erforderlichen Anforderungen an gültige Schlüssel. std::map organisiert seinen Inhalt mithilfe eines Ordnungsmechanismus, was die Frage aufwirft, ob eine beliebige Klasse als Schlüssel dienen kann oder ob bestimmte Anforderungen bestehen.
Der Schlüssel für std::map muss Folgendes einhalten Anforderungen:
Die Reihenfolge der Karte wird durch das dritte Vorlagenargument oder das Konstruktorargument gesteuert, das standardmäßig std::less
struct CmpMyType { bool operator()( MyType const& lhs, MyType const& rhs ) const { // Implementation of comparison logic } };
Stellen Sie sicher, dass Ihr Vergleichsoperator eine strikte Reihenfolge definiert. Wenn CmpMyType()( a, b ) true zurückgibt, muss CmpMyType()( b, a ) false zurückgeben. Wenn beide „false“ zurückgeben, gelten die Elemente als äquivalent und gehören zur gleichen Äquivalenzklasse.
Das obige ist der detaillierte Inhalt vonKann jede Klasse als Schlüssel für std::map dienen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!