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

红黑树和AVL树封装map和set的细节 以及 map的operator[]重载的底层

1.map中的insert

map的insert统一是 pair<iterator, bool>  insert(const pair<K,V>& kv)

红黑树的insert是 pair<iterator, bool>  insert(const T& data),节点的数据是 pair<K,V>

AVL树的insert是 pair<iterator, bool>  insert(const K& key,  const V& value),节点的数据是 pair<K,V>

2..set中的insert

set的insert统一是 pair<iterator, bool>  insert(const K& key)

红黑树的insert是 pair<iterator, bool>  insert(const T& data),节点的数据是 K

AVL树的insert是 pair<iterator, bool>  insert(const K& key,  const V& value),节点的数据是 pair<K,K>

归根结底是由于AVL树和红黑树底层节点的数据存储类型不一样,红黑树是T,AVL树是pair<K,V>

3.map的operator[ ]重载

底层就是先调 insert,insert插入传入的key和默认的V()组成的pair,然后用insert返回的pair<iterator,bool>,  利用迭代器返回节点里数据pair<K,V>的V的引用

http://www.xdnf.cn/news/4117.html

相关文章:

  • 从Rtos到Linux:学习的策略
  • 基于思考过程评价的心理问题咨询对话记性评估
  • Kotlin带接收者的Lambda介绍和应用(封装DialogFragment)
  • Guass数据库实验(数据字典设计、交叉表设计)
  • 基于MATLAB图像中的圆形目标识别和标记
  • DDR在PCB布局布线时的注意事项及设计要点
  • 人工智能数学基础(九)—— 信息论
  • 用户模块 - IP归属地技术方案
  • 【Ubuntu 安装Docker CE-Jenkins】
  • 促销量化模型简介和示例
  • 商业秘密泄露后的法律救济
  • 36、C#中的⽅法声明参数关键字params,ref,out的意义及⽤法
  • 微前端qiankun动态路由权限设计与数据通信方案
  • Python中有序序列容器的概念及其与可变性的关系
  • Excel VBA 自定义函数
  • 深入探索 Apache Spark:从初识到集群运行原理
  • conda配置好的pytorch在jupyter中如何配置
  • 【心海资源】telegram换U地址完整源码
  • Attention Is All You Need 翻译版
  • 在macOS上安装windows系统
  • Java面试深度解密:Spring Boot、Redis、日志优化、JUnit5及Kafka事务核心技术解析
  • 精益数据分析(40/126):移动应用商业模式的关键指标与盈利策略
  • 签名去背景图像处理实例
  • HTML5 新元素
  • llama_factory0.9.3微调Qwen3
  • 互联网大厂Java面试:从Java SE到微服务的全栈挑战
  • Unity:输入系统(Input System)与持续检测键盘按键(Input.GetKey)
  • android-ndk开发(5): 编译运行 hello-world
  • 【C++类】序幕
  • 【SpringBoot篇】详解短信验证码登录功能实现