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

C++中map和unordered_map的区别是什么?

1.map:

·底层:底层是红黑树。这是一种自平衡的搜索树;

·元素顺序:将元素按照键值的顺序存放;

·唯一性:不允许容器中出现键值相同的元素;

·时间复杂度:访问、插入和删除的时间复杂度都是O(log n);

·迭代器稳定性:由于底层是红黑树,所以无论进行什么操作迭代器指向的容器都不会发生改变。

2.unordered_map:

·底层:哈希表。通过哈希函数建立值与哈希表槽的唯一映射;

·元素顺序:容器中存放的元素没有顺序;

·唯一性:理论上哈希表不允许容器中出现相同的元素。如果发生哈希冲突,则会通过链表或快速寻址的机制解决;

·时间复杂度:查询操作的时间复杂度为O(1),删除或插入元素在最差情况下时间复杂度是O(n)。

·迭代器稳定性:当发生重哈希时,迭代器指向的元素可能会发生改变,即迭代器是不稳定的。

3.使用场景:

·当对容器内元素的顺序没有要求时使用unordered_map;

·当对容器内元素的顺序有要求时使用map。

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

相关文章:

  • Elasticsearch知识汇总之ElasticSearch部署
  • jenkins访问端口调整成80端口
  • OpenAI的“四面楚歌”:从营利到非营利,一场关于AGI控制权的革命
  • idea使用lombok错误,找不到符号,明明编译没问题,运行报错
  • list的使用及模拟实现
  • 玛格丽特鸡尾酒评鉴,玛格丽特酒的寓意和象征
  • 内存种类详解
  • create-vue搭建Vue3项目(Vue3学习2)
  • 使用BlockingQueue简化Java中的生产者-消费者问题
  • 逻辑越权--水平垂直越权(WEB漏洞)
  • 智能修复大模型生成的 JSON 字符串:Python 实现与优化
  • 从单机到生产:Kubernetes 部署方案全解析
  • Unity Editor 扩展:查找缺失的 Image Sprite
  • 【Windows 常用工具系列 22 -- vscode markdown preview 字体大小设置】
  • VSCode|IDEA|PyCharm无缝接入DeepSeek R1实现AI编程
  • 【Elasticsearch】在kibana中能获取已创建的api keys吗?
  • Jenkins忘记admin密码后的恢复步骤
  • 学习海康VisionMaster之间距检测
  • 数据中台产品功能介绍
  • 【区块链】Uniswap详细介绍
  • webrtc 视频直播
  • WiFi那些事儿(七)——802.11速率表
  • 2025-05-06 事业-独立开发项目-记录
  • iPaaS制造案例丨某照明行业头部企业借助谷云科技iPaaS步入数字化转型“快车道”
  • Java引用RabbitMQ快速入门
  • PaddlePaddle 和PyTorch选择与对比互斥
  • 关于 js:1. 基础语法与核心概念
  • Python之pip图形化(GUI界面)辅助管理工具
  • Jenkins 改完端口号启动不起来了
  • DTU_DTU厂家_5G/4G DTU终端_DTU模块_厦门计讯物联科技有限公司