ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

map和set的区别及hash表

2022-07-09 14:36:04  阅读:127  来源: 互联网

标签:输出 set hash map 元素 哈希


  1. map和set都是关联容器,其底层实现都是红黑树。
    1. map是映射,其中元素是键-值对,关键字起到索引作用,值表示与索引相关联的数值,set是集合每个元素只包含一个关键字。
      3. set的迭代器是sonst的,不允许修改元素的值,map允许修改value不许修改key值。map和set都是有序的。

hash表一般用来判断一个元素是否在集合里出现,复杂度位O(1)
元素通过哈希函数映射到哈希表中,若出现哈希碰撞,解决方法一般有两种:拉链法,使用链表;线性探测法,使用较大的哈希表size来存储datasize,提前预留出空位

常见的三种哈希结构:数组、set、map
![](https://www.icode9.com/i/l/?n=22&i=blog/2397356/202207/2397356-20220709142054726-768429509.png

确定某一元素是否在某个集合中,用hash表更好,复杂度更低。
什么时候用数组来做哈希的题目:元素数值大小有限制的时候
什么时候用set来做哈希的题目:输出结果中的每个元素一定是唯一的,也就是说输出的结果是去重的, 同时可以不考虑输出结果的顺序
什么时候用map来做哈希的题目:输出结果中的每个元素一定是唯一的,也就是说输出的结果是去重的, 同时考虑输出结果的顺序

标签:输出,set,hash,map,元素,哈希
来源: https://www.cnblogs.com/Ada-CN/p/16460806.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有