Bei Verwendung von Standardkarten in C werden Schlüsselvergleiche mithilfe des Standardkomparators des Schlüssels durchgeführt, typischerweise lexikographisch für Zeichenfolgen. Es gibt jedoch Szenarien, in denen Sie möglicherweise Ihre eigene Vergleichslogik definieren müssen.
Anpassen des Schlüsselvergleichs:
Um den Standardkomparator zu überschreiben, geben Sie einen benutzerdefinierten Komparator als an Dritter Vorlagenparameter beim Erstellen der Karte. Um beispielsweise Schlüssel anhand ihrer Zeichenfolgenlänge zu vergleichen:
<code class="cpp">struct LengthComparator { bool operator()(const std::string& lhs, const std::string& rhs) const { return lhs.length() < rhs.length(); } }; std::map<std::string, std::string, LengthComparator> lengthMap;</code>
Alternative Möglichkeiten zum Sortieren von Karten:
Wenn Sie keinen benutzerdefinierten Komparator definieren möchten, können Sie Folgendes tun kann andere Methoden zum Sortieren einer Karte verwenden:
Hinweis: Seien Sie beim Vergleich von Schlüsseln nach Länge vorsichtig dass nur eine Instanz jeder Länge als Schlüssel innerhalb der Karte existieren kann.
Das obige ist der detaillierte Inhalt vonWie überschreibe ich den Key Comparator in C Maps?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!