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

C++【红黑树--debug】

        上一节,手撕了一个红黑树。本来是要封装一下map,结果出现了一个bug是上节没有发现的。

#include"MySet.h"
#include"MyMap.h"

int main()
{
	ltq::map<int, int> m;

	m.insert(make_pair(1,1));
	m.insert(make_pair(3,3));
	m.insert(make_pair(2,2));
	cout << m.isTrue() << endl;

	return 0;
} 

        可以看到,程序崩掉了。正好记录一个debug过程,先不要给断点,看看程序崩在哪里,直接按F5.可以看到:

        可以发现,当前程序死在了对空指针的引用上。程序问题出在 左旋函数上,一般情况下我们需要对第三次的插入过程进行整体分析,因为程序有可能在左旋之前就已经发生了错误;

分析整个插入的过程:

        逐步分析可以看到:

 

        右旋函数的判断条件出现错误;至此debug结束;修改重新运行:

 

 

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

相关文章:

  • OBJARX
  • 死锁的产生以及如何避免
  • loadingcache优化
  • STM32中断向量表的个人理解
  • 第 k 个缺失的正整数
  • DevSecOps CI/CD 管道中数字供应链安全的集成策略
  • 应用案例 | 精准控制,高效运行—宏集智能控制系统助力SCARA机器人极致性能
  • App Standby省电机制流程
  • 常见排序算法鉴赏(原理剖析+动图演示)
  • Vue-flow中动态流程图的实现
  • ffmpeg windows 基本命令
  • 安装并运行hadoop程序
  • macos 程序 运行
  • clang-format安装配置与vscode支持
  • 【附源码】Java动漫视频网站源码【带弹幕系统】+SpringBoot+VUE+前后端分离
  • 有关Java中的IO(2) --字符流以及其他流
  • upload-labs详解(13-20)文件上传分析
  • manus是什么?能干啥?
  • 基于SpringBoot的车辆违章信息管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • LLM 学习(二 完结 Multi-Head Attention、Encoder、Decoder)
  • LN1132 低功耗 300mA 低压差 CMOS 电压稳压器
  • debain12.9使用unsloth微调Qwen2.5模型
  • Ubuntu20.04搭建gerrit code review
  • nnMamba:基于状态空间模型的3D生物医学图像分割、分类和地标检测
  • 深度学习算法实战——情感语音合成(主页有源码)
  • LeetCode 2523. Closest Prime Numbers in Range(2025/3/7每日一题)
  • OSI七大模型 --- 发送邮件
  • 操作系统 2.4-内核级线程基本实现原理
  • 小程序和页面生命周期详解
  • 游戏元宇宙崛起:AI代理IP驱动虚拟世界“无限可能”​