Schlüsselanforderungen für std::map
Damit eine Klasse ein gültiger Schlüssel in einer Standardbibliothek std::map ist, Es muss bestimmte Anforderungen erfüllen. Diese Anforderungen stellen sicher, dass Schlüssel innerhalb der Karte zuverlässig bestellt und verglichen werden können.
Benutzerdefinierte Schlüsselimplementierung
Wenn die Klasse, die Sie als Schlüssel verwenden möchten, diese Anforderungen nicht erfüllt, können Sie eine erstellen Wrapper-Klasse, die von der Originalklasse erbt und die erforderlichen Operatoren implementiert. Dies ist nützlich, wenn die ursprüngliche Klasse nicht geändert werden kann oder keinen geeigneten Vergleichsoperator bereitstellt.
Das Folgende ist ein Beispiel für einen benutzerdefinierten Schlüssel-Wrapper, der einen Vergleichsoperator für eine einfache Struktur implementiert:
struct MyType { // ... original class members }; struct MyTypeWrapper { MyType original; bool operator<(const MyTypeWrapper& other) const { // ... custom comparison logic } };
Durch die Verwendung von MyTypeWrapper als Schlüssel können Sie Objekte der MyType-Klasse zuordnen und gleichzeitig sicherstellen, dass die Reihenfolge der Zuordnung korrekt beibehalten wird.
Das obige ist der detaillierte Inhalt vonWelche Schlüsselanforderungen muss eine Klasse erfüllen, um als Schlüssel in einer „std::map' verwendet zu werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!