1、定义一个哈希表
unordered_map<typenameA,typenameB> hash;
2、CRUD
// 增
hash[key] = value;
//删
hash.erase(key); // 如果没有找到会返回0
//改
hash[key] = new value;
//查
hash.find(key); // 常用hash.find(key) == hash.end()来判断key值是否存在
hash.count(key) // 该函数:用以统计key值在unordered_map中出现的次数。c++ unordered_map不允许有重复的key。因此,如果key存在,则count返回1,如果不存在,则count返回0
3、遍历哈希表
3.1 auto遍历
auto是声明自动变量格式为for(元素类型 遍历值:数组/容器),
之所以用auto是可以根据赋值自动推导出变量类型。
加&是引用,如果没有&,每次遍历都会重新开辟空间存放遍历的值,空间复杂度是O(n),而使用引用的话,即使用同一块空间。
同时,引用的情况下可以修改原来的值。
3.2 哈希表的遍历
for (auto& [key, val] : hash){
...
}