对哈希表unordered_map的总结

本文详细介绍了C++标准库中的unordered_map容器,包括如何定义、基本的CRUD操作(创建、读取、更新、删除)以及如何遍历哈希表。通过实例展示了如何使用auto关键字进行无类型推导的遍历,并强调了引用在遍历过程中的作用,以避免额外的空间开销。
摘要由CSDN通过智能技术生成

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){
     ...
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值