hash_map
est pas standard C++ de sorte que vous devriez vérifier la documentation de la bibliothèque qui vous utilisez (ou au moins nous dire son nom), mais très probablement cela fonctionnera:
hash_map<string, int>::iterator i = dict.find("apple");
if (i == dict.end()) { /* Not found */ }
else { /* i->first will contain "apple", i->second will contain 5 */ }
Alternativement, si vous savez avec certitude que "apple"
est en dict
, vous pouvez également faire: dict["apple"]
. Par exemple cout << dict["apple"];
va imprimer 5.
Aussi, pourquoi le typedef dans votre code? Tu ne peux pas utiliser std::make_pair
? Et, il ne compilera pas la façon dont vous l'avez écrit (avec les deux principaux colons)
+1 Si vous connaissez * * que 'dict 'contient apple, vous pouvez également utiliser' dict ["apple"] '. Cela peut être légèrement moins efficace, mais plus clair dans certaines situations. –
Ajouté à ma réponse, merci –
Probablement hash_map fonctionne comme carte, et si la clé n'est pas déjà présente, il l'ajoutera avec la valeur 0. Il le fait dans le hash_map SGI, de toute façon. –