C++ 学习笔记9-unordered_multiset、set和unordered_map、multimap 六

文章目录

一,介绍模板

C++ 学习笔记9-unordered_multiset、set和unordered_map、multimap 六
class unordered_map中:

a) hash<key.>是采用的哈希函数,
b) equal_to<key;>是如果要哈希的值不同,得到的key相同的区分;(找到这个值就对比equal_to中的值,相等就返回pair<const key,T>中的T)
c) (其他参数不填写默认为空)

1,特点:

1)元素在容器无顺序,不提供按顺序遍历
2)在极端条件下,查找时间复杂度不是O(1),用的时间复杂度会提高很多
3)占用的空间可能会更多
4)在1000W以上不如set,hash冲突,性能降低很多;1000W以下就比set好

2.unordered_map应用场景(这里只举例unordered_map的使用)

根据玩家位置定位玩家
在ordered_map里面,把position作为一个key使用)
(模板特化,boost库里面的)

1)namespace std //为什么放在std,hash的算法是放在std里面的
{

}
2)template<> struct hash <Position .> //模板类的特化
3)
Position类C++ 学习笔记9-unordered_multiset、set和unordered_map、multimap 六
定义哈希函数C++ 学习笔记9-unordered_multiset、set和unordered_map、multimap 六
C++ 学习笔记9-unordered_multiset、set和unordered_map、multimap 六

上一篇:c++unordered_map扩容


下一篇:【C++】哈希(闭散列,开散列)