In unordered_map von C++11, wie Sie das update Wert für einen bestimmten Schlüssel?
In der Java-hashmap:
map.put(key, new_value)
wird, aktualisieren Sie den Eintrag key=Schlüssel (mit dem neuer_wert, wenn es vorhanden ist, in die hashmap.
Was ist der richtige Weg, um die ähnliche Sache in unordered_map von C++11?
Ich habe nicht gefunden, eine API wie updateXXX und die Dokumentation sagt das der unordered_map::insert - Funktion wird nur gelingen, wenn es kein solches paar mit einem Schlüssel.
InformationsquelleAutor der Frage Faraway | 2013-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wissen, dass der Schlüssel in der Karte, die Sie nutzen können
operator[]
das gibt einen Verweis auf den zugeordneten Wert. Daher wird esmap[key] = new_value
. Jedoch vorsichtig sein, da dies fügt eine(key, new_value)
wenn der Schlüssel nicht bereits vorhanden ist in der Karte.Können Sie auch
find
gibt einen iterator auf den Wert:InformationsquelleAutor der Antwort Yuushi
Dachte ich, dass Java -
map.put
eingefügt das element, wenn es nicht bereits in der Karte und aktualisiert, wenn es doch in die map, finden Sie setzen:Entspricht unordered_map::operator[]:
InformationsquelleAutor der Antwort RichardBruce