hash_map
не является стандартным C ++, поэтому вам следует проверить документацию по используемой вами библиотеке (или хотя бы сообщить нам ее название), но, скорее всего, это будет работать:
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 */ }
В качестве альтернативы, если вы точно знаете, что "apple"
находится в dict
, вы также можете сделать: dict["apple"]
. Например, cout << dict["apple"];
напечатает 5.
Кроме того, почему typedef в вашем коде? Разве вы не можете просто использовать std::make_pair
? И это не скомпилирует, как вы написали (с двумя ведущими двоеточиями)