对map和hash_map的一点总结

来源:互联网 发布:淘宝版权投诉 编辑:程序博客网 时间:2024/06/06 06:52

    map内部实现是依据红黑树的,查询的时间复杂度为log(n)。hash_map的内部实现是哈希表,查询的时间复杂度为n(1)。hash可以看成用空间复杂度换取了时间复杂度。

    在hash_map中,每个key都对应于一个桶,用来容纳value值。为了实现hash_map,我们需要定义哈希函数和等于比较函数。在没有提供这些函数的时候会用一个缺省的。

   有很重要的一点是hash_map需要定义的是等于函数,而map需要定义的是比较大小的函数,这样是和他们的特点相对应的,hash_map是基于哈希的思想,它只要看看置顶的键值有没有存在,用等于函数就可以实现。map是基于红黑树的,用比较函数比较大小。

原创粉丝点击