摘要: 目录红黑树简述性质/规则主要规则:推导性质:红黑树的基本实现struct RBTreeNodeclass RBTree红黑树的插入红黑树插入修正前言什么时候需要变色:变色的基础:为什么需要旋转与变色变色:旋转需要修正的所有情况(以左为例)先认识最简单的情况1. 叔叔是红色结点注意:2.没有叔叔结点3 阅读全文
posted @ 2024-08-26 22:54 HJfjfK 阅读(304) 评论(0) 推荐(1) 编辑
摘要: 4种旋转操方法,6种双旋平衡因子特征,图文详解,一把到位 阅读全文
posted @ 2024-08-23 16:34 HJfjfK 阅读(454) 评论(0) 推荐(4) 编辑
摘要: 目录二叉搜索树基本概念常用结论用途二叉搜索树的性能分析二叉搜索树的操作查找插入删除代码实现BSTree.hpptest.cc 二叉搜索树 基本概念 二叉搜索树(BST,Binary Search Tree) 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空 阅读全文
posted @ 2024-08-20 23:44 HJfjfK 阅读(194) 评论(0) 推荐(2) 编辑
摘要: 目录一、树概念及结构树的概念树的相关概念树的表示二、二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构三、二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构堆的作用:堆的性质:计算孩子与父亲的下标关系1. 通过父亲得到左右孩子的下标2. 通过孩子找到父亲的下标如何得知自己是左孩子还是右孩 阅读全文
posted @ 2024-08-05 22:17 HJfjfK 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 目录智能指针场景引入 - 为什么需要智能指针?内存泄漏什么是内存泄漏内存泄漏的危害内存泄漏分类如何避免内存泄漏智能指针的使用及原理RAII简易例程智能指针的原理智能指针的拷贝问题智能指针的发展历史std::auto_ptr模拟实现auto_ptr例程:这种方案存在的问题:Boost库中的智能指针un 阅读全文
posted @ 2024-06-17 20:40 HJfjfK 阅读(460) 评论(0) 推荐(4) 编辑
摘要: 深入剖析C++多态的实现与原理-详解 (万字长文) 目录一、多态基础虚函数虚函数的继承虚类/虚基类重写/覆盖条件:概念:多态的条件其他的多态行为多态中子类可以不写virtual协变代码举例继承遗留问题解决析构函数具体解决方式:题目1答案:解析:题目2答案:C++11 override和finalfinal功能1:禁用继承使用场景:功能2:禁用重写使用 阅读全文
posted @ 2024-06-09 22:30 HJfjfK 阅读(1468) 评论(0) 推荐(6) 编辑
摘要: C++继承、多继承、菱形继承、虚继承 (万字) 继承 目录继承继承继承的访问权限子类赋值给父类赋值兼容规则“天然”的行为验证:1. 其他权限继承能否支持赋值兼容规则2.是否"天然",有没有产生临时变量继承中的作用域继承的隐藏参数继承的构造函数继承的拷贝构造继承的operator=继承的析构函数析构顺序析构的特殊处理坑:为什么析构函数需要特殊处理继 阅读全文
posted @ 2024-05-30 18:10 HJfjfK 阅读(599) 评论(0) 推荐(1) 编辑
摘要: 数组降维、函数栈帧、地址空间、可变参数原理剖析 (万字) 目录数组和指针多维数组的物理结构证明数组a和&a不同数组与指针的差别之一什么时候数组名表示整个数组?数组训练理解指针与数组的题所有的数组,都可以看成一维数组.所有的数组传参,最终都会降维成一维数组函数函数的地址函数的规范内存管理malloc返回给用户的只有申请内存的起始地址,那free是如何准确释放 阅读全文
posted @ 2024-05-22 00:01 HJfjfK 阅读(336) 评论(0) 推荐(3) 编辑
摘要: 预处理 目录预处理一、宏定义数值宏常量字符串宏常量用define宏定义注释符号?程序的编译过程预处理中宏替换和去注释谁先谁后?如何写一个更可靠的宏函数do-while-zero结构do-while-zero的评价宏定义中的空格宏只能在main函数上面定义吗?宏的作用范围#undef宏替换是在函数调用 阅读全文
posted @ 2024-05-19 10:25 HJfjfK 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 对C语言符号的一些冷门知识运用的剖析和总结 (万字) 原理剖析 阅读全文
posted @ 2024-05-05 16:07 HJfjfK 阅读(406) 评论(4) 推荐(5) 编辑
摘要: C总结与剖析:关键字篇 目录C总结与剖析:关键字篇变量1.变量:内存上的某个位置开辟的空间2.变量的初始化3.为什么要有变量4.局部变量与全局变量5.变量的大小由类型决定6.任何一个变量,内存赋值都是从低地址开始往高地址1.1 关键字auto1.2 关键字register什么样的变量可以采用regi 阅读全文
posted @ 2024-04-25 20:29 HJfjfK 阅读(317) 评论(1) 推荐(3) 编辑
摘要: 空格/换行输入 末尾两个空格等于换行 空格输入方法: 使用全角英文的空格 使用  这样的标记 标题 (注:#号后加空格后面就是标题) # 1 一个#号就代表1号标题 ## 2 两个#号就代表2号标题 ### 3 #号越多字越小 #### 4 标题需要在#号后空一格才生效 ##### 5 举 阅读全文
posted @ 2024-04-08 11:01 HJfjfK 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 目录跑步问题 - 暴力法题目分析规律代码实现1. 初步框架2. dfs3. 补全结果打印 跑步问题 - 暴力法 题目 某人准备跑20圈来锻炼自己的身体,他准备分多次(>1)跑完,每次都跑正整数圈,然后休息下再继续跑。 为了有效地提高自己的体能,他决定每次跑的圈数都必须比上次跑的多, 设第一次圈数不能 阅读全文
posted @ 2024-10-06 12:54 HJfjfK 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 目录表的增删改查Create指定列插入单行数据+全列插入多行数据+全列插入插入否则更新替换 (replace)Retrieve标准语法SELECT列全列查询限制显示条目 limit (分页查询)基本语法:指定列查询select 查询字段为表达式表达式重命名去重WHERE 条件比较运算符逻辑运算符案例 阅读全文
posted @ 2024-09-27 14:41 HJfjfK 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 目录数据库的编码集与校验集表的基本结构库的操作(DDL)创建数据库带字符集创建带校验集创建查看数据库查看自己正在使用的是哪一个数据库显示创建语句删除数据库使用数据库查看当前使用的数据库数据库备份与还原备份还原查看数据库连接数表的操作(DDL)建表查看数据库中的表查看表结构查看表的创建信息修改表结构修 阅读全文
posted @ 2024-09-26 18:39 HJfjfK 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 目录表的约束空属性非空约束(NOT NULL Constraint)默认值定义用途语法演示列描述:commentzerofill语法:效果主键 (primary key)语法基本效果删除主键追加主键复合主键语法自增长 auto_increment验证自增长属性的特点自增长基准值变化搭配主键语法函数l 阅读全文
posted @ 2024-09-25 16:32 HJfjfK 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 目录函数时间日期函数:字符串函数数学函数其他函数 函数 时间日期函数: 所有的时间日期函数都是从完整的时间日期开始,根据需求进行截断; 例如需要时间,则只显示时间部分;需要日期就显示日期部分; 获得年月日: select current_date(); + + | current_date() | 阅读全文
posted @ 2024-09-24 15:46 HJfjfK 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 目录数据类型数据类型分类数值类型以TINYINT认识整型族有符号边界范围测试无符号边界测试说明BIT类型FLOAT类型无符号Float默认的Float修约规则评价高精度浮点decimalchar类型varchar类型语法说明char和varchar的区别日期与时间类型举例:说明注意enum和set测 阅读全文
posted @ 2024-09-23 18:59 HJfjfK 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 目录使用C语言连接库的安装C APImysql_initmysql_real_connectmysql_closemysql_querymysql_set_character_setmysql_store_result 使用C语言连接 mysql操作是线程安全的(事务) 以API路线认识mysql 阅读全文
posted @ 2024-09-23 08:00 HJfjfK 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 目录用户用户管理查询所有用户查看当前用户查看当前连接数创建用户删除用户修改密码规则查看规则/策略规则说明临时设置持久设置修改密码权限数据库提供的 权限列表查看权限给用户授权回收用户权限 用户 用户管理 mysql用户管理位于数据库mysql中的user表中 mysql> show tables; + 阅读全文
posted @ 2024-09-22 15:01 HJfjfK 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 目录用户用户管理查询所有用户查看当前用户查看当前连接数创建用户删除用户修改密码规则查看规则/策略规则说明临时设置持久设置修改密码权限数据库提供的 权限列表查看权限给用户授权回收用户权限使用C语言连接库的安装C APImysql_initmysql_real_connectmysql_closemys 阅读全文
posted @ 2024-09-22 14:29 HJfjfK 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 目录MySQL卸载环境查看是否已安装MySQL卸载mysql服务查看是否卸载干净MySQL安装查看linux版本选择MySQL版本获取mysql官方yum源rpm安装mysql官方yum源安装mysql服务查看是否安装成功配置MySQL简单登录mysql命令免密登录配置my.cnf 其他配置项设置开 阅读全文
posted @ 2024-09-20 19:19 HJfjfK 阅读(315) 评论(2) 推荐(3) 编辑
摘要: 目录类型关键字sizeof如何理解强制类型转化不同类型的0null字符设备(补充) char有有符号和无符号两种类型,字符是无符号类型.(补充) getchar的返回值为什么是int键盘输入的内容,以及往显示器中打印的内容,都是字符 --> 键盘/显示器称为字符设备 类型 C语言为何有类型? 让我们 阅读全文
posted @ 2024-09-19 23:00 HJfjfK 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 目录位运算位运算和逻辑运算区别位运算的几点注意异或的运算规则异或的经典问题:两数交换位操作建议使用宏定义好后使用位运算整型提升问题左移和右移概念移位运算容易误解成移位赋值 位运算 位运算和逻辑运算区别 位运算是一位对应一位的对所有位逐一进行运算(逐比特位进行运算).逻辑运算是以计算表达式的真假为主进 阅读全文
posted @ 2024-09-19 12:00 HJfjfK 阅读(113) 评论(0) 推荐(1) 编辑
摘要: 目录举例一些的宏和预处理指令C99引入的特性 VA_ARGS__##__VA_ARGS__说明:#line#error#pragmaMessage参数#warning#和##前置:相邻字符串具有自动连接特性#运算符#运算符的功能:在宏定义中,将宏参数转化成字符串用法举例:使用场景:##运算符功能:用 阅读全文
posted @ 2024-09-19 08:00 HJfjfK 阅读(46) 评论(0) 推荐(1) 编辑
摘要: 目录typedeftypedef功能简化类型声明typedef与宏的区别typedef的用法注意不要过度使用typedef为什么typedef属于存储类型关键字 typedef 历史的误会-typedef也许应该是typerename,typedef就是用来给类型重命名的 typedef功能 typ 阅读全文
posted @ 2024-09-18 23:00 HJfjfK 阅读(90) 评论(0) 推荐(1) 编辑
摘要: 目录注释奇怪的注释C风格的注释无法嵌套一些特殊的注释注释的规则建议反斜杠'\'反斜杠有续行的作用,但要注意续行后不能添加空格回车也能起到换行的作用,那续行符的意义在哪?反斜杠的转义功能单引号和双引号字面值,字符串,字符,字符变量的大小为什么sizeof('1')的大小是4 ?char类型一直在发生截 阅读全文
posted @ 2024-09-18 21:00 HJfjfK 阅读(228) 评论(0) 推荐(1) 编辑
摘要: 目录++(--)后置的++(--)真的是先使用,后自增吗?后置++和前置++的差别复杂表达式++i+++i+++i贪心法编译器的贪心规则不是保证一定正确的规则赋值的原理 ++(--) 后置的++(--)真的是先使用,后自增吗? 概念:前置++是先自增,后使用; 后置++是先使用,后自增. 下面从汇编 阅读全文
posted @ 2024-09-18 19:00 HJfjfK 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 目录浮点数与"零值"精度损失:验证浮点数的差值是否存在精度损失浮点数直接比较验证如何进行浮点数比较浮点数与"零值"比较null 浮点数与"零值" 精度损失: 浮点值与实际值不等,可能偏大可能偏小,都属于精度损失 验证浮点数是否存在精度损失 验证浮点数的差值是否存在精度损失 浮点数直接比较验证 结论: 阅读全文
posted @ 2024-09-17 20:00 HJfjfK 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 目录宏定义数值宏常量字符串宏常量用define宏定义注释符号?程序的编译过程预处理中宏替换和去注释谁先谁后?如何写一个可靠的宏函数do-while-zero结构do-while-zero的评价宏定义中的空格宏只能在main函数上面定义吗?宏的作用范围#undef宏替换是在函数调用之前进行.块中进行# 阅读全文
posted @ 2024-09-17 12:57 HJfjfK 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 目录C语言的四种取整方式:零向取整trunc函数(C99)trunc的使用地板取整floor函数的使用向上取整ceil函数的使用四舍五入round函数(C99)round函数的使用四种取整方式演示 C语言的四种取整方式: 零向取整 如图: 可以发现C语言a和b的取整方式都不是四舍五入,而是直接舍弃小 阅读全文
posted @ 2024-09-16 20:00 HJfjfK 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 目录变量程序的本质:二进制文件1.变量:内存上的某个位置开辟的空间2.变量的初始化:3.为什么要有变量4.局部变量与全局变量5.变量的大小由类型决定6.任何一个变量,内存赋值都是从低地址开始往高地址1.1 关键字auto1.2 关键字register什么样的变量可以采用register? 变量 程序 阅读全文
posted @ 2024-09-16 14:00 HJfjfK 阅读(40) 评论(0) 推荐(0) 编辑