In Java hashmap:In unordered_map von C++ 11, wie den Wert eines bestimmten Schlüssels zu aktualisieren?
map.put(key, new_value)
wird die Eingabe-Taste = Taste mit new_value aktualisieren, wenn es in der hashmap existiert.
Was ist der richtige Weg, um die ähnliche Sache in unordered_map von C++ 11 zu tun?
Ich habe keine API wie updateXXX gefunden, und die Dokumentation sagt die unordered_map :: insert Funktion wird nur gelingen, wenn es kein solches Paar mit einem Schlüssel gibt.
Oder 'std :: unordered_map :: at'. Es wird die Ausnahme "std :: out_of_range" ausgelöst, wenn das Element mit dem angegebenen 'key' nicht existiert. – soon
Danke! Ich habe 'unordered_map :: const_iterator it = map.find (key)' verwendet und einen Fehler bekommen, als ich 'it-> second'' 'new_value' 'zuweisen wollte. 'auto' funktioniert perfekt. Ich brauche mehr über C++ zu lernen. – Faraway
@Yeclipse Das ist, weil Sie eine 'const_iterator' verwenden - das bedeutet, dass was der Iterator" zeigt "ist" const "(das heißt, es kann nicht geändert werden). Ändern Sie es in 'unordered_map :: iterator it = map.find (key)' und es wird funktionieren - das ist, was 'auto' daraus ableitet. – Yuushi