自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 红黑树实现详解:从概念到代码

红黑树详解

2026-10-21 20:07:39 69

原创 AVL 树详解:从概念到 C++ 实现

AVL树详解

2026-10-19 22:48:39 142

原创 二叉搜索树(BST)详解:概念、性能、增删查与代码实现

二叉搜索树

2026-10-18 21:47:45 191

原创 C++ 多态详解:从概念到原理,一篇彻底搞懂

多态详解

2026-10-18 21:14:27 258

原创 C++ 继承详解:从概念到菱形继承

继承(inheritance)机制是面向对象程序设计使代码可以复用最重要的手段,它允许我们在保持原有类特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的是函数层次的复用,继承是类设计层次的复用。

2026-10-18 20:44:33 120

原创 C++ 模板进阶(七):特化、分离编译与模板总结

一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。【优点】模板复用了代码,节省资源,更快的迭代开发,C++ 的标准模板库(STL)因此而产生。增强了代码的灵活性。【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长。出现模板编译错误时,错误信息非常凌乱,不易定位错误。

2026-10-09 20:39:16 143

原创 C++ STL 容器适配器深度剖析:stack、queue 与 priority_queue 的底层逻辑

容器适配器双子星queue+stack

2026-10-05 23:11:41 309

原创 C++学习之路第七期:list 容器详解与模拟实现

本文系统讲解C++ STL中list容器的特性与实现。list基于带头结点的双向循环链表,支持高效插入删除(O(1)),但不支持随机访问。文章涵盖list的构造、迭代器使用、增删改查接口及迭代器失效规则,并通过模拟实现展示其底层结构。最后与vector对比,从底层结构、访问效率、空间利用率及迭代器失效等方面深入分析两者差异,帮助读者全面掌握list的应用场景与设计思想。

2026-09-27 22:05:25 527

原创 C++学习之路(六):vector 从入门到模拟实现

本文系统讲解C++ STL中vector容器的使用与原理,涵盖构造、迭代器、扩容机制、增删查改操作及关键的迭代器失效问题。通过对比VS(1.5倍扩容)与g++(2倍扩容)差异,强调reserve预分配空间的重要性,并深入剖析插入、删除等操作导致迭代器失效的原因与解决方案,结合OJ实战案例,帮助读者实现从“能用”到“明理”再到“能扩展”的进阶目标。

2026-09-27 21:40:21 180

原创 Linux 基础指令入门:常用命令、Shell 原理与权限管理

本文系统梳理了Linux命令行核心基础,涵盖路径操作(pwd、ls、cd)、文件管理(touch、mkdir、rm、cp、mv)、内容查看(cat、less、head、tail、grep)、打包压缩(tar、zip)、系统信息(uname、date、top)及权限管理(chmod、chown、umask)。强调在无图形界面的生产环境中掌握命令行是开发、运维必备技能。建议初学者按目录→文件→内容→权限顺序实操,并善用man手册查证,通过反复练习建立熟练度。

2026-09-12 20:54:54 233

原创 【C++学习之路05】搞懂C++内存管理:内存分区、new/delete与malloc/free的本质区别

本文系统梳理了C++/C语言的内存管理机制。首先介绍了内存分布的五个区域:栈(向下增长)、内存映射段(进程通信)、堆(向上增长)、数据段(全局/静态数据)和代码段(可执行代码)。随后对比了C语言的malloc/free与C++的new/delete操作符,重点说明new/delete对自定义类型会自动调用构造/析构函数。文章深入解析了operator new/delete的底层实现(基于malloc/free)及异常处理机制,并详细阐述了new/delete的实现原理(包括数组版本)。最后介绍了定位new表

2026-08-12 15:11:26 217 1

原创 【C++学习之路04】类进阶核心:初始化列表、友元、隐式转换与编译器优化全解

本文摘要: 构造函数初始化列表:介绍了C++中成员变量初始化的两种方式,强调初始化列表的语法规则、使用场景(如const/引用成员必须使用初始化列表)和注意事项(声明顺序影响初始化顺序)。 类型转换:探讨内置类型与类类型的隐式转换机制,说明explicit关键字可禁止隐式转换,并演示类类型对象间的转换实现方式。 static成员:静态成员变量需类外初始化,被所有对象共享;静态成员函数无this指针,仅能访问静态成员,可通过类名或对象调用。 友元机制:友元函数/类可突破封装访问私有成员,具有单向性和非传递性,

2026-08-07 18:26:56 207 1

原创 【C++学习之路03】深入类的核心:构造/析构函数与运算符重载详解(中)

本文摘要主要介绍了C++中类的默认成员函数,重点讲解了构造函数、析构函数、拷贝构造函数、赋值运算符重载和取地址运算符重载这五类默认成员函数的特点和使用方法。构造函数用于对象初始化,析构函数用于资源释放,拷贝构造函数处理对象拷贝行为,赋值运算符重载实现对象间的赋值操作,取地址运算符重载则用于获取对象地址。文章通过代码示例详细说明了这些成员函数的语法规则、默认行为和注意事项,帮助读者理解C++中类的基本特性及其背后的实现原理。

2026-08-06 23:05:34 216 1

原创 【C++学习之路02】|初识类:从定义到成员,C++类的基础语法梳理(上)

本文总结了C++类的基本概念和使用方法。主要内容包括:1)类的定义格式和成员组成;2)访问限定符(public/protected/private)的作用;3)类域的概念和作用域操作符的使用;4)类的实例化过程;5)类对象大小的计算规则(遵循内存对齐原则);6)this指针的原理和作用,编译器会自动在成员函数中添加this指针参数。文章通过代码示例详细说明了类的封装特性、成员访问控制以及对象内存布局等核心概念,为C++面向对象编程提供了基础指导。

2026-05-10 22:44:51 403

原创 【C++学习之路01】||零基础无痛入坑,C++前置知识保姆级数梳理

本文总结了C++基础语法要点,包括:1)第一个C++程序结构;2)命名空间(namespace)的定义与使用,解决命名冲突问题;3)C++输入输出流(cin/cout)的使用;4)缺省参数的全缺省和半缺省规则;5)函数重载的条件与注意事项;6)引用的概念、特性及使用场景;7)const引用的权限规则;8)指针与引用的区别;9)内联函数(inline)的特性;10)nullptr替代NULL的优势。文章通过代码示例详细说明了各语法点的使用方法和注意事项,为C++初学者提供了系统的语法学习指南。

2026-05-09 16:15:36 405

原创 数据结构之二叉树(2)(二叉树的遍历+相关节点的计算)

本文介绍了二叉树的基本操作算法实现,包括四种遍历方式和五种计算功能。遍历方式包含:1)前序遍历(根-左-右);2)中序遍历(左-根-右);3)后序遍历(左-右-根);4)层序遍历(使用队列实现)。计算功能包含:1)计算叶子节点个数;2)计算总节点数;3)计算第k层节点数;4)计算树的高度;5)查找指定值的节点。所有算法均采用递归实现,对空树情况做了特殊处理,并通过三目运算符等方式实现条件判断和结果返回。

2026-05-06 22:26:06 38

原创 数据结构之二叉树(1)(树的相关概念+堆的实现)

本文系统介绍了树和二叉树的数据结构概念与应用。主要内容包括:1. 树的基本概念:定义、节点关系(双亲/孩子/兄弟节点)、度、层次等术语,以及树的表示方法;2. 二叉树特性:包括满二叉树、完全二叉树,以及顺序/链式存储结构;3. 堆的实现:详细讲解了大/小堆的构建,重点分析了向上调整和向下调整两种算法的时间复杂度(O(n) vs O(nlogn));4. 堆的应用:包括堆排序算法和TOP-K问题的解决方案,通过建立K元素堆处理海量数据的高效查询。文章通过图示和代码示例(如节点结构定义、调整算法实现等)直观展示

2026-04-16 19:56:51 376

原创 栈和队列OJ题

摘要:本文针对当前AI替代程序员的焦虑问题,指出技术学习仍是核心。通过讲解三道OJ题目,深入解析栈和队列的应用:1)使用栈解决有效括号匹配问题,分析四种边界情况;2)用双队列实现栈结构,重点讲解数据转移和假设法的应用;3)用双栈模拟队列操作,详解数据逆置方法。文章强调数据结构基础的重要性,并预告后续二叉树内容,建议程序员应专注技术提升而非过度焦虑AI威胁。代码实现部分详细展示了C语言的手动实现过程。

2026-04-10 21:43:50 401

原创 数据结构之栈和队列

本文介绍了栈和队列两种基本数据结构

2026-03-30 22:40:27 195

原创 链表之环形链表OJ

文章介绍了两个环形链表相关问题的解决方法。

2026-03-29 23:29:08 391

原创 链表经典OJ题

本文总结了链表相关的经典OJ题解,包括7种常见题型

2026-03-21 14:05:07 425

原创 数据结构之链表

本文系统介绍了链表数据结构。

2026-03-09 22:58:04 225

原创 C语言之动态内存管理

本文介绍了C语言动态内存分配机制及其相关函数

2026-02-12 11:47:37 893

原创 C语言之自定义类型

本文介绍了C语言中三种自定义数据类型:结构体、联合体和枚举。

2026-02-11 23:30:30 560

原创 C语言之内存函数

本文介绍了C语言中常用的内存操作函数及其实现原理。

2026-02-10 23:18:30 403

原创 C语言之深入理解指针(3)

本文介绍了指针的相关应用

2026-02-09 10:29:54 199

原创 C语言之深入理解指针(2)

本文系统讲解了指针相关的重要概念

2026-02-08 12:57:52 573

原创 C语言之深入理解指针(1)

本文系统讲解了C语言指针的核心概念与应用。

2026-02-07 23:29:54 971

原创 C语言之操作符详解

本文系统介绍了C语言中的各类操作符及其使用规则

2026-02-03 21:06:54 808

原创 c语言之扫雷(基础版)

本文介绍了控制台版扫雷游戏的设计与实现。

2026-02-02 23:11:41 373

原创 C语言之函数基础

本文系统介绍了C语言中的函数概念与使用方法

2026-02-01 13:13:59 784

原创 数据结构之顺序表基础

本文介绍了顺序表的概念、分类及实现方法。顺序表是线性表的一种,在逻辑和物理结构上都是连续的。文章比较了顺序表与数组的区别,指出顺序表是对数组的封装。顺序表分为静态(使用定长数组)和动态(可扩容)两种类型,重点阐述了动态顺序表的实现方法,包括创建、初始化、增容、插入删除等操作。最后提醒注意相关头文件的包含及错误检查。动态顺序表通过按需扩容解决了静态顺序表空间分配不合理的问题。

2026-01-31 16:39:02 221

原创 C语言之数组基础

本文介绍了C语言中数组的基本概念和使用方法

2026-01-30 15:30:34 279

空空如也

空空如也

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

TA关注的人

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