这就是我所拥有的,我是C ++的新手,所以我不确定这是不是......
typedef pair<string, int>:: make_pair;
hash_map <string, int> dict;
dict.insert(make_pair("apple", 5));
我想给我的hash_map“apple”,我想回来5.我该怎么做?
答案 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;
}