- map和set都是关联容器,其底层实现都是红黑树。
- map是映射,其中元素是键-值对,关键字起到索引作用,值表示与索引相关联的数值,set是集合每个元素只包含一个关键字。
3. set的迭代器是sonst的,不允许修改元素的值,map允许修改value不许修改key值。map和set都是有序的。
- 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。