如何在C ++中查找hash_map?

时间:2009-12-22 21:59:27

标签: c++ hashmap

这就是我所拥有的,我是C ++的新手,所以我不确定这是不是......

typedef pair<string, int>:: make_pair;
hash_map <string, int> dict;
dict.insert(make_pair("apple", 5));

我想给我的hash_map“apple”,我想回来5.我该怎么做?

2 个答案:

答案 0 :(得分:9)

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吗?而且,它不会编译你编写它的方式(使用两个主要冒号)

答案 1 :(得分:0)

迭代你的hashmap,vector,list和其他结构:

for(hash_map<string,int>::iterator i = dict.begin(); i != dict.end(); i++)
{
     cout << "key(string): " << i->first << ", value(int): " << i->second << endl;
}