文章目录
一,介绍模板
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类
定义哈希函数