关于hash类关联容器的底层实现

有关hash类的关联容器有:

hash_set,hash_map,hash_multiset,hash_multimap这四类。它们的底层实现方法为hashtable,并且哈希表底层通过开链法实现。

开链法和开地址法:

开链法即(开散列):相对于闭散列所解决hash冲突的优势。

闭散列(开地址法):最大的局限性就是空间利用率低。

采用开链法的原因:

开链法可以使载荷因子为1。每个链上都挂常数个数据,并且其开的空间使按素数个数据,并且其开的空间是按素数个依次往后开的空间,当因子为1时,就可以扩容了,即_size = _tables.size()。存放桶元素用vector容器(因为vector本身具有动态扩容能力。vectior容器大小为一个质数大小,每次扩容的时候总是将容器大小设定为第一个大于当前需要的新容器大小的质数值)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值