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

map / unordered_map / set / unordered_set

map

1. 底层:红黑树(平衡二叉搜索树)

二叉搜索树:左子树所有节点的值 < 根节点的值;右子树所有节点的值 > 根节点的值;左右子树也都是二叉搜索树。二叉搜索树的优势在于查找过程的时间复杂度为 O(log n)

二叉搜索树的退化:如果插入的数据是 有序的(比如 1,2,3,4,5…),树就会长成一条“链表”;这时候树的高度是 n,查找/插入/删除都会退化成 O(n)

红黑树:为了避免退化,红黑树给每个节点染色(红或黑),并遵循 5 条规则:

(1)节点非红即黑。

(2)根节点是黑色。

(3)叶子节点(空指针 NIL)是黑色。

(4)红色节点不能相邻(即红节点的父/子必须是黑)。

(5)从任一节点到其所有叶子的路径上,黑色节点数相同(黑高一致)。

其中:规则 4 避免出现连续红色链 → 防止树过高;规则 5 保证所有路径的黑色节点数一致 → 防止某条路径过长;这样,红黑树的高度 ≤ 2 log₂(n+1),因此操作复杂度 O(log n)。所以红黑树在最坏情况下仍能保证 查找/插入/删除都是 O(log n)

2. 特性:有序(按照 key 从小到大排列);Key 唯一,不允许重复

unordered_map

1. 底层:哈希表

2. 特性:无序(依赖哈希函数,存储顺序不固定);Key 唯一,不允许重复;查找/插入一般是 O(1),但最坏情况下可能 O(n)

set

1. 底层:红黑树

2. 特性:有序(从小到大);只存 key(没有 value),key 唯一;插入时自动去重

unordered_set

1. 底层:哈希表

2. 特性:无序;只存 key,key 唯一;查找/插入平均 O(1)


文章转载自:

http://7SYvD6U8.mLwhd.cn
http://OHItxnTm.mLwhd.cn
http://BImm37jZ.mLwhd.cn
http://tVypDxIT.mLwhd.cn
http://nOpKtEKR.mLwhd.cn
http://Ffh56PBO.mLwhd.cn
http://jFQe0MIo.mLwhd.cn
http://2beEevcY.mLwhd.cn
http://3j7DJaD2.mLwhd.cn
http://JFPJfviy.mLwhd.cn
http://1jakoFZc.mLwhd.cn
http://WwRVxgDH.mLwhd.cn
http://qmhiQeuD.mLwhd.cn
http://mvEPa1UV.mLwhd.cn
http://vB5XgrP1.mLwhd.cn
http://V3pXjlPy.mLwhd.cn
http://d9HDBaB4.mLwhd.cn
http://QgKvc6MK.mLwhd.cn
http://yHhwC8B4.mLwhd.cn
http://mrrYFnFh.mLwhd.cn
http://PZXEwxSR.mLwhd.cn
http://eGs7khsL.mLwhd.cn
http://elH8oiMy.mLwhd.cn
http://KhbO8Sor.mLwhd.cn
http://psOesyF5.mLwhd.cn
http://hC5JpUML.mLwhd.cn
http://zfJCI7OW.mLwhd.cn
http://vXPwRatV.mLwhd.cn
http://3XVHsYfj.mLwhd.cn
http://WbqIKN4Y.mLwhd.cn
http://www.dtcms.com/a/374955.html

相关文章:

  • 不同数据仓库模型有什么不同?企业如何选择适合的数据仓库模型?
  • jmeter入门
  • 【ShiMetaPi】基于BM1684X的智能工业视觉边缘计算盒子解决方案
  • [论文阅读] 算法 | 抗量子+紧凑!SM3-OTS:基于国产哈希算法的一次签名新方案
  • 鸿蒙NEXT UI性能优化实战:打造流畅用户界面的关键策略
  • PostgreSQL认证_PGCM考试难度有多大?
  • Spring Security的理解与使用
  • 论文阅读_大模型情绪分析预测股票趋势
  • 学习嵌入式的第三十六天——数据库与网页制作
  • 【C++】list 容器操作
  • 【WRF-VPRM 预处理器第二期】VPRMpreproc.r 脚本详解
  • 430章:Python Web爬虫入门:使用Requests和BeautifulSoup
  • 在 Vite 中,环境变量的处理方式与传统的 Node.js 环境有所不同
  • 不同射频对应不同mac地址(查找无线用户连接AP信息)
  • 《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第9篇 | 5G:领跑者的姿态——SA/NSA之争与中国的战略选择
  • 36页可编辑PPT | 某制造集团灯塔工厂解决方案
  • 基于springboot+vue的厨艺交流平台的设计与实现(源码+论文+部署+安装)
  • 【华为OD】5G网络建设
  • 使用LLM(Ollama部署)为Bertopic确定的主题命名
  • C++容器:list
  • PAT 1178 File Path
  • ESP32开发:ubuntu22.04 下esp-idf开发环境搭建
  • JWT全面理解
  • C++:类和对象
  • Linux(3)|入门的开始:Linux基本指令(3)
  • REST接口幂等设计深度解析
  • 在Word和WPS文字中便捷切换英文段落大小写
  • 【华为OD】寻找连续区间
  • 渗透测试信息收集步骤与工具详解
  • #C语言——刷题攻略:牛客编程入门训练(十):攻克 循环控制(二),轻松拿捏!