当前位置: 首页 > news >正文

30、map 和 unordered_map的区别和实现机制【高频】

底层结构

  • map底层是红黑树结构,而unordered_map底层是哈希结构;

有序性

  • 但是红黑树其实是一种二叉搜索树,插入删除时会自动排序
  • hash因为是把数据映射到数组上的,而且存在哈希冲突,所以不能保证有序存储

所以有序存储使用map(红黑树的中序遍历,就能把储存的数据从小到大把数据按序展现出来)

查找

  • 为了查找,红黑树需要依次比较 关键码,时间复杂度为logn,还要加上平衡节点旋转的时间

  • 虽然说哈希表的内存 消耗远大于红黑树,但是因为哈希表增删查改时是直接映射到数组上的,时间复杂度为O(1)

http://www.dtcms.com/a/68736.html

相关文章:

  • FreeRTOS之信号量
  • 【后端】【django】Django DRF `@action` 详解:自定义 ViewSet 方法
  • 微信小程序实现根据不同的用户角色显示不同的tabbar并且可以完整的切换tabbar
  • 母婴商城系统Springboot设计与实现
  • 冠珠瓷砖×郭培“惟质致美”品质主题片上映,讲述高定艺术背后的致美品质故事
  • SSM基础专项复习5——Maven私服搭建(2)
  • 1.2、Java中的私有方法
  • 前端笔试高频算法题及JavaScript实现
  • 安科瑞EMS3.0开启企业微电网能源管理新篇章
  • 了解printf函数
  • (包清楚解疑)ES6中__dirname和__filename不见了吗?,到底怎么用
  • 从零到精通文本指令:打造个人AI助理的完整指令库(Prompt 指令实操)
  • IIC协议-HAL库
  • 在微信小程序或前端开发中,picker 和 select 都是用户交互中用于选择的组件,但它们在功能、设计和使用场景上有一定的区别
  • StarRocks + Paimon 在阿里集团 Lakehouse 的探索与实践
  • go回调函数的使用
  • 分而治之:用于 RGB-T 显著目标检测的 Confluent Triple-Flow 网络(问题)
  • 基于Babylon.js的Shader入门三(让Shader中的纹理动起来)
  • Jmeter的简单使用
  • STM32-SPI通信外设
  • Python 与 JavaScript 交互及 Web 逆向分析全解析
  • 3D文物线上展览如何实现?
  • 一些docker命令
  • L1正则化与L2正则化的区别
  • DataWhale 大语言模型 - 大模型技术基础
  • 数据库技术
  • EB-Cable许可与软件版本兼容性的关系
  • 常见的企业软件和工业软件种类
  • Springboot中的异常处理
  • 棒球和垒球区别·棒球1号位