case insensitive unordered_mapstring, int

8

Wie kann ich eine case-insensitive unordered_map<string, int> ? erstellen? Reicht das Überschreiben von key_equal aus oder muss ich auch hasher aktualisieren?

    
MBZ 04.08.2013, 00:56
quelle

1 Antwort

2

Hasher muss ebenfalls aktualisiert werden, da der Standard-Hash-Algorithmus keinen identischen Hash-Code für Strings erzeugt, die sich nur im Falle ihrer Symbole unterscheiden - eine wesentliche Eigenschaft der Hash-Code-Funktion, die mit Zeichenfolgen ohne Beachtung der Groß- und Kleinschreibung arbeiten soll.

%Vor%

Dies zeigt verschiedene Werte auf ideone:

%Vor%     
dasblinkenlight 04.08.2013, 01:03
quelle

Tags und Links