stl中unordered_map 和 map的区别

  • 目录
    • 一、hash_map与unordered_map
    • 二、unordered_map与map
    • 三、unordered_map与unordered_set

目录

一、hash_map与unordered_map

这两个的内部结构都是采用哈希表来实现。区别在哪里?unordered_map在C++11的时候被引入标准库了,而hash_map没有,所以建议还是使用unordered_map比较好。
哈希表的好处是什么?查询平均时间是O(1)。顾名思义,unordered,就是无序了,数据是按散列函数插入到槽里面去的,数据之间无顺序可言,但是有些时候我只要访问而不需要顺序,因此可以选择哈希表。举个最好的例子,就是我的LeetCode的博文里------Longest Consecutive Sequence这一题,我的方法二就是用的unordered_map来实现“空间弥补时间”这样的做法。

二、unordered_map与map

虽然都是map,但是内部结构大大的不同哎,map的内部结构是R-B-tree来实现的,所以保证了一个稳定的动态操作时间&#x

stl中unordered_map 和 map的区别 ?相关推荐

  1. c++使用unordered_map与map的区别

    c++使用unordered_map与map的区别 内部实现机理 map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的 ...

  2. JS数组中 forEach() 和 map() 的区别

    JS数组中 forEach() 和 map() 的区别 Array中 Array.forEach()和 Array.map()方法之间的区别. forEach()和map()方法通常用于遍历Array ...

  3. python filter和map的区别_js中filter和map的区别

    介绍了这么多关于filter的内容,大家有没有发现filter和map在为数组中的每个元素调用一次 callback 函数,都是js数组的操作方法,那么filter和map有什么区别呢?其实最大的区别 ...

  4. STL中mem_fun与mem_fun_ref的区别[转]

    STL中mem_fun和mem_fun_ref的用法 分类: C++2006-11-21 09:11 5244人阅读 评论(8) 收藏 举报 怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的 ...

  5. Python中apply和map的区别

    文章目录 一.apply用法 二.map用法 apply和map的区别 概括: apply:用在dataframe上,用于对row或者column进行计算 applymap :用于dataframe上 ...

  6. STL中的set/map

    std::set/std::map底层实现的机制是红黑树,树中的数据是有序的,那么进行插入.删除.查找时的平均时间复杂读O(logN),以2为低的对数N.set相当于map中的key,map中的key ...

  7. C++|STL学习笔记-对STL中关联容器map的进一步认识

    关联容器map key + value 的值 关联容器 = 有序容器(红黑树) + 无序容器(散列表) + hash_map 有序容器中: map的键值是不允许重复的 multimap的键值是允许重复 ...

  8. STL中vector和list的区别

    底层结构   vector的底层结构是动态顺序表,在内存中是一段连续的空间.   list的底层结构是带头节点的双向循环链表,在内存中不是一段连续的空间. 随机访问   vector支持随机访问,可以 ...

  9. boost中unordered_map的用法

    学习数据结构的时候 偶然得知有个unordered_map,以前没有用过,查了查相关内容,据说效率比map高出很多,而且耗资源也少,研究一下 至于具体效率咋样我就不去验证了,网上太多了 参考:http ...

最新文章

  1. 大型网站技术架构(八)网站的安全架构
  2. Ubuntu下 Hadoop 1.2.1 配置安装
  3. java stream中Collectors的用法
  4. win7发现不了无线网络怎么办 win7发现不了无线网络的解决办法
  5. 大数据预测实战-随机森林预测实战(三)-数据与特征对模型的影响
  6. 不同表结构数据迁移_C语言:数据结构-广义表的存储结构
  7. Flutter 技术介绍
  8. VSCode 离线安装中文语言包
  9. JSP页面乱码的几种解决方案
  10. st计算机编程语言,SoMAChineST编程语言介绍.pdf
  11. u8转完看不到菜单_进入软件后所有菜单栏都不显示
  12. Web缓存(代理服务器)
  13. 汉化版PHP代码审计工具rips
  14. codeforces 1677A. Tokitsukaze and Strange Inequality
  15. hbuilder前端需要的插件_这两款HTML5开发工具,前端开发工程师用了直呼内行
  16. 上海往事之2015-07股市风云录
  17. oracle 二进制算法,二进制搜索(查找)
  18. JXTA v2.5技术手册
  19. 北京律师事务所名称大合集
  20. 转计算机科学 转专业理由,有说服力转专业理由大全

热门文章

  1. linux桌面创建文档,有没有可以创建.desktop文件的GUI应用程序?
  2. 怎么才能更好的掌握Python这门语言?该怎么学呢?
  3. php 多组radiobutton,Tkinter多个Radiobutton组
  4. jsp 将页面中的值导入java中_JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式
  5. Django框架之DRF 基于mixins来封装的视图
  6. JavaScript实现Floyd-Warshall算法(附完整源码)
  7. OpenCASCADE:读STEP
  8. wxWidgets:WxBase 事件循环
  9. boost::set_difference相关的测试程序
  10. boost::phoenix::arg_names相关的测试程序