unordered_map 与 map 的对比

  
unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value。 不同的是unordered_map不会根据key的大小进行排序, 存储时是根据key的hash值判断元素是否相同,即unordered_map内部元素是无序的,而map中的元素是按照二叉搜索树存储,进行中序遍历会得到有序遍历。


所以使用时map的key需要定义operator<。而unordered_map需要定义hash_value函数并且重载operator==。但是很多系统内置的数据类型都自带这些,


那么如果是自定义类型,那么就需要自己重载operator<或者hash_value()了。


结论:如果需要内部元素自动排序,使用map,不需要排序使用unordered_map

猜你喜欢

转载自blog.csdn.net/qq_34062105/article/details/79882789