C++STLunordered_map unordered_set的使用和解析(c++STL相关)

unordered_map unordered_set以hash table为基础,效率是惊人的,跟容量存储数量无关,内部元素没有明显的顺序

优点:

1、查找速度快 遍历也快

缺点:

1、元素无序
2、平均算法是常数,但极端序列元素性能会下降。
3、空间可能会不紧凑。
4、元素在1千万以下不如unorderd但1千万以上不如二叉树,因为有大量重复的key。

以下是使用该类容器需要注意的地方:

1、equal_to用来判断两个不同的key的hash值是否一样
2、使用unordered_map之类的无序容器的时候需要实现一个hash算法,可以用模板特化来实现以下是针对Position写的一个模板特化一个类的例子用x+y作为hash key:
在这里插入图片描述
在这里插入图片描述
可以用以下方法产生hash因子减少冲突
在这里插入图片描述
更好的方法:
在这里插入图片描述
以下关于unordered_map完整解析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值