Hash unoedered_map运用
1.头文件
#include <unordered_map>
2.创建对象
unordered_map<int,int> hsahtable;
哈希表中每个对象key值和value值一一映射。
3.哈希表建立
#法一:根据key值索引,给value赋值
hashtable[key]=value;
#插入pair
hashtable.insert<make_pair(1,3)>
hashtable.insert({1,3})
4.hash索引
#迭代器it
unordered_map<int,int>::iterator it;
#哈希表中每个对象为pair类,和pair访问方式相同
key=it->first
value=it->second
5.hash查找
以LeetCode 两数之和为例
unordered_map<int, int> hashtable;
for (int i = 0; i < nums.size(); ++i) {
auto it = hashtable.find(target - nums[i]);
#若找不到,it指向hashtable.end();
if (it != hashtable.end()) {
return {it->second, i};
}
hashtable[nums[i]] = i;
}
6.修改、清楚
#修改,通过键值修改
hashtable[key]=value
#清除
#hashtable.erase(key)
hashtable.erase(it)
hsahtable.clear()