STLunordered_map unordered_set的使用和解析(c++相关)

,以hash table为基础,效率是惊人的,跟容量存储数量无关
内部元素没有明显的顺序
缺点:
1、元素无序
2、平均算法是常数,但极端序列元素性能会下降。
3、空间可能会不紧凑。
4、元素在1千万以下不如unorderd但1千万以上不如二叉树,因为有大量重复的key。

equal_to用来判断两个不同的key的hash值是否一样
使用unordered_map之类的无序容器的时候需要实现一个hash算法,可以用模板特化来实现以下是针对Position写的一个模板特化一个类的例子用x+y作为hash key:
STLunordered_map unordered_set的使用和解析(c++相关)
STLunordered_map unordered_set的使用和解析(c++相关)
可以用以下方法产生hash因子减少冲突
STLunordered_map unordered_set的使用和解析(c++相关)
更好的方法:
STLunordered_map unordered_set的使用和解析(c++相关)
以下关于unordered_map完整解析:
STLunordered_map unordered_set的使用和解析(c++相关)
STLunordered_map unordered_set的使用和解析(c++相关)
STLunordered_map unordered_set的使用和解析(c++相关)

STLunordered_map unordered_set的使用和解析(c++相关)STLunordered_map unordered_set的使用和解析(c++相关) 昔拉再世 发布了109 篇原创文章 · 获赞 8 · 访问量 590 私信 关注
上一篇:c++数据结构总结


下一篇:html、css、js注释