当前位置: 首页 > 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结束;修改重新运行:

 

 

相关文章:

  • 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)
  • 自动网站建设/湖南长沙疫情最新情况
  • 十堰网站优化价格/营销是什么意思
  • 代码源/什么是优化师
  • 无锡企业网站的建设/全球新冠疫情最新消息
  • 住房和城乡建设部网站园林一级/优化什么
  • 上海做网站的/如何制作网站赚钱