自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Qt 项目:MusiPlayer 音乐播放器

基于Qt的一个仿 QQ 音乐界面的本地音乐播放器项目

2026-10-14 21:37:23 330

原创 C++ AVL树

本文讲解了C++中AVL树的实现原理。针对二叉搜索树在极端情况下退化为链表的问题,详细介绍了AVL树如何通过“平衡因子”实现自我修复。文章通过丰富的逻辑分析与旋转图解(左单旋、右单旋、左右/右左双旋),手把手教你如何处理四种不平衡场景,并提供了核心插入算法的代码实现。无论你是为了面试准备还是算法进阶,这篇保姆级教程都能帮你彻底搞定AVL树!

2026-05-06 21:14:55 781

原创 C++ STL 容器 -- map和set

本文讲解了 C++ STL 中的关联式容器 map 与 set。从容器分类、红黑树底层原理入手,详解 set/multiset、map/multimap 的定义、核心接口、遍历方式与避坑要点,搭配极简代码示例和 LeetCode 实战题,覆盖键值统计、数组交集等高频场景。

2026-04-19 21:45:56 789

原创 C++ 二叉搜索树

本文深度剖析了二叉搜索树(BST)的实现原理。从“左小右大”的核心家法,到插入、查找的图解流程,再到最烧脑的“替换法”删除逻辑,手把手带你徒手写出一棵高性能搜索树。不管是面试还是项目实战,这篇干货都不容错过!

2026-04-14 22:10:32 935

原创 C++ 多态

C++ 多态让基类指针/引用“指向不同对象即不同行为”。本文从概念、构成条件、虚函数重写、纯虚函数入手,重点深入讲解虚函数表(vtable)+ 虚指针(vptr)的底层实现原理:编译期生成vtable,运行期动态查表完成绑定。

2026-04-12 21:46:18 1073

原创 C++ 继承

想知道为什么 C++ 程序员能“少加班”吗?全靠继承!本文深度拆解 C++ 继承的核心机制:从权限管理的“取轻原则”到内存切片的底层真相;从构造析构的生命周期到让初学者谈之色变的“菱形继承”噩梦。通过对比继承与组合,带你洞悉虚继承(Virtual Inheritance)底层如何通过偏移量解决数据冗余。

2026-04-11 23:22:57 995

原创 C++ 模板

厌倦了为不同数据类型写重复代码?本博文带你一窥 C++ “万能模具”——模板的真面目!文章通俗易懂地讲解了函数模板与类模板的底层实现机制,揭秘了编译器如何在幕后通过“实例化”为你代写代码。深入探讨了非类型参数、全特化/偏特化等进阶玩法,并精准破解了“模板分离编译导致链接出错”的经典难题。点进来,让你的代码实现从“手工打造”到“自动化生产”的跨越!

2026-04-09 15:43:55 961

原创 C++ STL 适配器 -- stack和queue

Stack 和 Queue 是 STL 的两大容器适配器,分别实现后进先出和先进先出的数据结构。Stack 通过限制接口只允许栈顶操作,适合括号匹配、表达式求值等场景;Queue 在队头出队、队尾入队,适合任务调度、BFS 等场景。两者都默认使用 Deque 作为底层容器,因为 Deque 在头尾操作都是 O(1)。Priority Queue 则基于堆实现优先级队列。理解这三个容器的本质——它们都是通过包装现有容器、限制接口来实现特定规则——是掌握 STL 设计哲学的关键。

2026-04-07 22:50:11 817

原创 C++ STL 容器 -- list

本文是 C++ STL 容器系列的 list 专题,延续 "核心定义 + 结论 + 设计初衷 + 代码示例" 的通俗讲解框架,全面解析 std::list 容器。文章从其底层带头结点的双向循环链表结构切入,详解构造、容量管理、元素访问与增删查改接口,重点剖析 list 专属排序、去重等算法,以及面试高频的迭代器失效规则。同时通过与 vector 的多维度对比,明确二者互补的适用场景,并整理了开发中的常见避坑点,兼顾入门实用性与面试应试性,帮助读者从使用到原理吃透 list。

2026-04-03 20:31:11 762

原创 C++ STL 容器 -- vector

本文全面介绍了C++ STL中的vector容器。vector作为动态数组,通过连续内存存储实现高效随机访问,支持自动扩容和内存管理。文章详细解析了vector的构造方式、容量管理机制、增删查改操作、三种遍历方法以及迭代器失效问题。特别强调了vector相比原生数组的优势:动态长度、自动内存管理、丰富操作接口。进阶部分讲解了二维vector实现和内存释放技巧。通过储物柜等生动比喻,帮助读者理解vector的底层原理和使用场景,掌握STL容器的核心设计思想。

2026-03-28 18:57:14 897

原创 C++ STL 容器 -- string

本文全面解析C++标准库中的std::string类,涵盖其核心功能与底层实现。string作为动态字符数组的封装类,提供自动内存管理、深拷贝和安全操作接口,解决了C风格字符串的常见问题。文章详细介绍了string的构造/析构、运算符重载、容量管理、访问遍历、修改操作、查找子串等功能,并通过代码示例展示其用法。string通过封装内存管理和丰富接口,实现了安全高效的字符串处理,是C++开发中不可或缺的重要组件。

2026-03-28 11:21:06 815

原创 C++ 动态内存/内存管理

本文系统讲解了C/C++动态内存管理的核心知识。C语言通过malloc/calloc/realloc/free函数手动管理堆内存,需注意类型转换、NULL判断和成对释放;C++则推荐使用new/delete操作符,具有自动类型推导、构造/析构调用等优势。文章详细对比了两种方式的区别,分析了内存分区特点(栈区自动管理vs堆区手动管理),并列举了野指针、内存泄漏等常见错误。动态内存的正确使用是C/C++开发的重要技能,需严格遵循分配-使用-释放的生命周期管理原则。

2026-03-14 14:54:16 1105

原创 C++ 类与对象

本文系统梳理了C++面向对象编程中类与对象的核心知识点。主要内容包括:1. 类的基本定义与封装特性,通过访问控制符实现数据隐藏;2. 对象的创建与销毁机制,详解构造函数(默认/带参/拷贝)、析构函数和初始化列表;3. 重载机制,包括成员函数重载、运算符重载(赋值/取地址)的实现规则;4. 特殊成员特性,如this指针、静态成员和友元的应用场景;5. 高级特性如内部类和匿名对象的使用方法。文章通过大量代码示例和练习题,帮助读者深入理解面向对象封装思想在C++中的具体实现。

2026-01-19 21:14:18 1452

C++ AVL树的完整可运行代码

C++ AVL树的完整可运行代码

2026-05-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除