Dans unordered_map de C ++ 11, comment mettre à jour la valeur d'une clé particulière?
En Java hashmap:
map.put(key, new_value)
permettra de mettre à jour l'entrée de key=clé avec nouvelle_valeur si elle existe dans la table de hachage.
Quelle est la façon correcte de faire la même chose dans unordered_map de C++11?
Je n'ai pas trouvé une API comme updateXXX, et la documentation dit le unordered_map::insert la fonction ne peut réussir que lorsqu'il n'y a pas une telle paire avec une clé.
source d'informationauteur Faraway
Vous devez vous connecter pour publier un commentaire.
Si vous savez que la clé est dans la carte, vous pouvez utiliser
operator[]
qui renvoie une référence à la valeur mappée. Par conséquent, il seramap[key] = new_value
. Attention, cependant, ce qui permettra d'insérer un(key, new_value)
si la clé n'existe pas déjà dans la carte.Vous pouvez également utiliser
find
qui renvoie un itérateur à la valeur:Je pensais que Java est
map.put
inséré l'élément s'il n'était pas déjà dans la carte et mis à jour si c'est dans la carte, voir mettre:Ce serait l'équivalent de unordered_map::operator[]: