- 博客(52)
- 收藏
- 关注
原创 Re:Linux系统篇(二)指令篇 · 一:基础六大指令精讲+Linux操作技巧——让你从小白到入门
本文介绍了Linux基础指令的使用方法,包括pwd、ls和mkdir指令。pwd用于查看当前工作目录;ls用于列出目录内容,支持-a、-l等选项显示隐藏文件和详细信息;mkdir用于创建新目录。文章还讲解了Linux文件结构的多叉树特性,以及文件属性的查看方法。通过具体示例演示了各指令的用法,帮助读者快速掌握Linux基本操作。
2026-04-20 15:36:50
267
22
原创 Re:Linux系统篇(一)从浅谈操作系统历史背景到安装部署云服务器
Linux操作系统入门指南:从历史到实践 本文系统介绍了Linux操作系统的发展历程与应用实践。首先回顾计算机发展史,从埃尼阿克到摩尔定律驱动的PC革命,引出Unix系统的诞生及其对Linux的影响。重点解析Linux作为开源操作系统的优势:安全性、稳定性和企业级应用价值,对比闭源系统的差异。文章提供Linux版本选择建议(Ubuntu/CentOS)和源码查看方式,并详细指导环境搭建方案,推荐学生使用云服务器(如腾讯云)配合Xshell工具进行学习。最后给出Linux内核官网和云服务器购买渠道,为初学者构
2026-04-19 15:29:14
390
27
原创 Re:思考·重建·记录 现代C++ C++11篇 (三) 深度解构:可变参数模板、类功能演进与 STL 的新版图
摘要: 本文是C++11可变参数模板的深度解析,重点探讨了可变参数模板的概念、用法及其在简化代码中的优势。文章从C语言的printf函数引入可变参数概念,详细介绍了模板参数包和函数参数包的定义方式,并通过sizeof...操作符演示参数包大小的获取。核心部分通过递归函数展开参数包的实例,解析了编译时递归实例化的原理,强调了终止函数设计的重要性。此外,还分析了参数包在函数调用中的扩展场景,展示了可变参数模板的灵活性。最后总结指出,可变参数模板本质上是"模板中的模板",能大幅减少重复代码,提
2026-04-13 07:06:54
1703
84
原创 Re:Hexo博客入门「想搭个人博客?这篇零基础小白也能学会的精修教程请收好」
这是一份详细的Hexo博客搭建教程,旨在手把手指导用户从零开始创建属于自己的个人博客。教程涵盖了搭建博客的完整流程,包括环境准备(如安装Node.js、Git)、Hexo框架的基本操作、主题配置(如Next或Butterfly主题)、以及如何部署到GitHub Pages或Vercel等平台。同时,教程还会介绍如何绑定自定义域名、配置评论系统、图床设置等进阶功能,帮助用户打造一个功能完善、外观精美的个人博客空间。无论你是编程新手还是希望重新拾起博客写作的用户,这份教程都能为你提供清晰易懂的操作指引。
2026-04-12 11:46:09
511
29
原创 Re:思考·重建·记录 现代C++ C++11篇 (二) 右值引用与移动语义&引用折叠与完美转发
本文摘要: 本文深入探讨了C++11引入的右值引用与移动语义特性。首先扩展了左值/右值的概念,指出左值可寻址而右值不可寻址的核心区别。随后详细解析了左值引用和右值引用的语法规则及其交叉引用时的特殊处理方式(const左值引用可绑定右值,move可将左值转为右值引用)。重点阐述了右值引用的两大关键特性:允许修改临时对象和延长对象生命周期。最后引出移动语义的概念,说明其在解决深拷贝性能问题中的重要意义,为后续深入研究移动语义的实现机制奠定基础。全文通过大量代码示例和底层分析,清晰展示了现代C++在资源管理方面的
2026-04-07 09:20:29
1787
45
原创 Re:思考·重建·记录 现代C++ C++11篇 (一) 列表初始化&Initializer_List
本文介绍了C++11中引入的列表初始化和initializer_list特性。文章首先回顾了C++98中的传统初始化方式,随后详细讲解了C++11统一初始化方式的实现,包括内置类型和自定义类型的支持。重点分析了initializer_list的定义、三种写法及其底层实现原理,指出它作为只读数组轻量引用视图的特性。通过代码示例展示了列表初始化在实际编程中的应用优势,特别是在容器初始化时的便利性。最后探讨了initializer_list与模板参数推导的关系,以及编译器对其的特殊处理方式。这些特性使C++11的
2026-04-06 12:59:58
1024
31
原创 Re:从零开始的 C++ STL篇(十一)map/set使用精讲:常见问题与典型用法(下)
摘要 本文介绍了C++中map和set两种关联式容器的基本使用。主要内容包括: map容器原型:详细解析了map的模板参数声明,包括键值类型、比较函数和内存分配器,并指出map底层采用红黑树实现,具有O(logN)的查询效率。 pair类补充:说明map使用pair结构存储键值对,介绍了pair的基本结构和make_pair工具函数。 map接口介绍: 构造函数:无参构造、迭代器区间构造、拷贝构造和初始化列表构造 迭代器:支持正向和反向迭代,遍历时按键升序排列 增删查接口:插入pair的四种方法、删除和查找
2026-04-02 21:35:04
556
22
原创 Re:从零开始的 C++ STL篇(十)map/set使用精讲:常见问题与典型用法(上)
本文介绍了C++ STL中的关联式容器set和map,重点分析了set容器的基本特性、接口实现及使用场景。set作为基于红黑树实现的关联容器,具有O(logN)的增删查效率,支持有序遍历。文章详细讲解了set的构造函数、迭代器、插入、查找、计数和删除等核心接口,并通过代码示例展示其实际应用。与序列式容器不同,关联式容器通过关键字保存和访问元素,适合需要高效查找的场景。本文为理解和使用set/map容器提供了实用指南,特别适合需要处理有序数据的开发者参考。
2026-03-31 08:59:03
835
24
原创 Re:从零开始的 C++ STL篇(九)AVL树太“较真”,红黑树更“现实”:一文讲透工程中的平衡之道
本文围绕红黑树插入操作的调整过程展开,重点分析在插入新节点后可能出现的三类典型情况:叔节点为红的变色情况,以及叔节点为黑时对应的单旋与双旋调整。通过对不同结构(直线型与折线型)的分类讨论,结合黑高变化与红红冲突的消除过程,逐步推导出各类操作的必要性与正确性。同时,引入抽象子树模型,对不同黑高(bh)下的情况进行统一描述,从本质上解释红黑树能够在保证平衡的同时维持较高性能的原因。本文不仅关注操作步骤,更强调背后的结构变化与性质维持,帮助读者从“会用”走向“理解”。
2026-03-31 08:33:23
915
18
原创 算法实战论01(双指针篇一):双指针的核心思想与应用场景总结
双指针算法实战解析 双指针算法是解决数组和链表问题的有效技巧,主要包括对撞指针和快慢指针两种形式。本文通过两个实战案例详细讲解双指针的应用: 移动零问题: 使用双指针将数组分为零和非零两部分 定义cur指针遍历数组,dest指针标记非零元素末尾 通过交换操作实现零元素后移 时间复杂度O(n),空间复杂度O(1) 复写零问题: 先模拟异地操作确定指针初始位置 再从后向前进行本地复写操作 处理边界情况如数组末尾溢出 时间复杂度O(n),空间复杂度O(1) 这两个案例展示了双指针在数组分块问题中的典型应用,通过指
2026-03-28 13:49:32
486
25
原创 Re:从零开始的 C++ STL篇(八)深度解构AVL树自平衡机制:平衡维护与旋转调整背后的严密逻辑
AVL树:自平衡二叉搜索树的核心原理 本文深入解析AVL树的核心概念与实现方法。AVL树是最早的自平衡二叉搜索树,通过平衡因子控制高度差(不超过1),确保操作效率维持在O(logN)。文章详细介绍了: AVL树的基本概念和平衡因子定义 三叉链结构设计及其必要性 插入操作的三个关键步骤: 按二叉搜索树规则插入 更新平衡因子(右子树高-左子树高) 根据平衡因子变化进行旋转调整 平衡因子更新的三种情况及其处理逻辑 旋转操作的类型与触发条件 文章通过图解和代码示例(C++实现)展示了AVL树如何通过高度平衡机制提升
2026-03-25 07:27:03
1678
37
原创 Re:从零开始的 C++ 进阶篇(三)彻底搞懂 C++ 多态:虚函数、虚表与动态绑定的底层原理
摘要:本文系统解析C++多态机制的底层原理,重点探讨运行时多态的实现方式。通过虚函数和重写机制,结合基类指针/引用的动态绑定特性,实现同一行为在不同对象上的差异化表现。文章详细讲解虚函数重写的"三同"原则(函数名、参数列表、返回值相同),并通过经典面试题演示多态调用时的参数传递规则,揭示虚函数表在动态绑定中的关键作用。最后通过"买瓜"案例生动展示多态在实际编程中的应用场景,帮助读者深入理解这一面向对象编程的核心特性。
2026-03-19 20:17:03
1039
82
原创 Re:从零开始的 C++ STL篇(七)二叉搜索树增删查操作系统讲解(含代码)+key/key-value场景联合分析
本文介绍了二叉搜索树(BST)的概念、性能分析及基本操作实现。二叉搜索树是一种特殊的二叉树结构,通过左子树小于根节点、右子树大于根节点的性质实现高效搜索。文章详细讲解了BST的查找、插入原理,并分析了最优(O(log N))和最差(O(N))情况下的性能差异。此外,还对比了BST与二分查找的优劣,指出BST在动态数据操作上的优势。最后给出了C++实现框架,包括节点类和功能类的基本结构。文章强调平衡二叉搜索树(如AVL树和红黑树)对解决BST退化问题的重要性,为后续学习奠定基础。
2026-03-16 12:42:17
1484
34
原创 Re:从零开始的 C++ 进阶篇(二)C++继承到底做了什么?从对象模型到底层内存布局彻底讲透
本文系统解析了C++继承机制的核心原理与应用。首先介绍了继承的基本概念,通过Person、Student和Teacher类的案例展示了代码复用优势。详细讲解了继承的三种方式(public/protected/private)及其访问权限规则,强调基类private成员在派生类中不可见的特点。文章还探讨了模板继承中的适配器实现方式,分析了按需实例化导致的依赖成员访问问题。最后深入解析了父子类对象的赋值兼容转换(切片)机制,通过图示说明public继承下子类对象向父类赋值的底层原理。全文从语法到内存模型层层深入
2026-03-10 06:59:10
1928
19
原创 哈希表里的“垃圾元素”,为什么有时必须删除?
摘要: 本文探讨了哈希表中"垃圾元素"(value=0的键值对)的处理策略。作者指出,当算法依赖哈希表结构(如map1==map2或map.size()判断)时,必须通过if(mp[key]==0) mp.erase(key)清理垃圾元素,否则会导致逻辑错误(如例题LCR015)。反之,若算法仅依赖频率数值比较(如mp[a]<=mp[b]),则可不清理(如例题30)。文章通过力扣例题对比两种场景,总结出"结构依赖必清,数值依赖可留"的实战原则,帮助优化滑动窗口+
2026-03-06 16:03:51
482
8
原创 Re:从零开始的 C++ 进阶篇(一)超全的模板进阶详解:非类型模板参数、模板特化、与模板的分离编译
本文深入探讨了C++模板的高级应用,主要包括非类型模板参数、模板特化和分离编译三大主题。首先介绍了非类型模板参数的概念及其与宏定义的对比优势,详细说明了其只支持整型参数的限制和使用注意事项。其次,重点讲解了函数模板和类模板的特化机制,包括全特化与偏特化的实现方式及其调用规则,并指出了函数模板不能偏特化的原因。最后,分析了模板分离编译失败的根本原因,提出将声明和定义放在同一文件的解决方案。文章通过丰富的代码示例和原理分析,为读者呈现了C++模板编程的进阶知识。
2026-02-26 10:39:56
943
9
原创 Re:从零开始的 C++ STL篇(六)一篇文章彻底掌握C++stack&queue&deque&priority_queue
本文系统讲解了C++中stack、queue和deque的底层实现原理。首先介绍了容器适配器的概念,说明stack和queue是基于其他容器实现的适配器。重点剖析了deque的双端队列结构,详细解释其底层由buffer数组、中控数组和迭代器三大组件构成的工作原理,分析其头尾插入和随机访问的实现机制。通过对比vector和list,说明deque作为stack和queue默认容器的优势。最后介绍了优先级队列(堆)的实现,并讲解了仿函数在比较操作中的应用。文章由浅入深,从适配器设计模式到具体容器实现,为理解ST
2026-02-15 19:27:38
1449
8
原创 Re:从零开始的 C++ STL篇(五)一篇文章彻底掌握C++list
本文详细讲解了C++ STL中list容器的特性与实现。文章首先介绍了list作为带头双向循环链表的特点,包括常数时间的插入删除操作和迭代器类型限制。重点分析了list与vector在排序效率上的差异及优化方案。随后通过手写list实现,深入探讨了节点类、迭代器类的设计思路,包括operator重载、const迭代器实现等关键技术。文章还涉及list的构造方式、迭代器失效问题以及C++11新增的初始化列表构造等特性。最后简要提及模板的按需实例化机制,为后续内容埋下伏笔。
2026-02-10 09:42:17
877
8
原创 Re:从零开始的 C++ STL篇(四)一篇文章彻底掌握C++vector
本文系统讲解了C++中vector容器的使用方法和底层实现原理。主要内容包括:vector的基本概念与接口使用,与string的区别;vector的特殊构造方式如初始化列表;vector的扩容机制和迭代器失效问题;二维vector的使用方法;vector源码解析,包括成员变量、构造函数和push_back实现;以及迭代器失效的原因和解决方案。文章通过代码示例和图示详细说明了vector的内部工作机制,并提供了实际应用场景如杨辉三角的实现建议。最后还分享了关于构造函数、容器初始化和编译器匹配原则等实用知识点。
2026-02-09 11:02:42
805
9
原创 你真的懂快速排序吗?从底层机制到工业级优化一次讲透——快速排序六大方法的深度剖析
本文详细介绍了快速排序算法的多种实现方法及其优化策略。主要内容包括:1. 经典霍尔法的核心思想和代码实现,重点分析了单趟排序的细节处理;2. 时间复杂度分析及常见优化方法(三数取中、小区间优化);3. 其他实现方法(挖坑法、前后指针法)及其特点;4. 非递归实现思路;5. 现代优化技术(三路划分处理重复数据、自省排序防止退化)。文章强调快速排序在面试中的重要性,提供了完整的代码示例和性能优化方案,适合算法学习者深入理解快速排序的原理与应用。
2026-02-01 14:13:22
1293
76
原创 你以为你会排序?六大经典排序的真正底层逻辑(上)
本系列文章系统梳理经典排序算法的思想演进链路与结构本质,而非停留在代码实现层面。内容从最基础的交换类排序出发,逐步过渡到插入思想、增量分组优化,再进入选择策略与堆结构,完整展现排序算法从局部有序构造 → 全局有序建立 → 结构化优化的技术脉络。文章覆盖:冒泡排序 —— 交换驱动的最朴素有序化模型直接插入排序 —— 局部有序区扩张机制希尔排序 ——插入思想的工程级加速方案直接选择排序 —— 确定性选择策略堆排序 —— 选择思想的结构化极致形态
2026-01-30 11:32:59
994
10
原创 Re:从零开始的 C++ STL篇(三)string的疑难问题详细解析:深拷贝,写时拷贝,三个swap
摘要:本文深入探讨C++ string类的底层实现与优化技术。重点分析了深拷贝的两种实现方式(传统写法和现代写法),对比了三种swap方法(通用模板、成员函数和特化版本)的性能差异。文章还介绍了引用计数与写时拷贝技术,比较了VS和g++下string的不同内存结构。最后讨论了常用转换接口和构造函数实现的注意事项,帮助开发者更深入理解string类的实现原理和优化技巧。
2026-01-24 18:21:42
685
6
原创 Re:从零开始的 C++ STL篇(二)万字干货!全站最全的std::string 全面解析与硬核指南(下)
摘要:本文详细讲解了C++中string类的常用接口操作,包括数据增加(operator+=、append、insert)、修改(assign、replace)、删除(erase、pop_back)等功能,并提供了接口原型说明和测试代码示例。文章还介绍了查找(find)、比较运算符重载、swap交换等操作,最后提及substr、getline等实用功能。作者指出部分接口(如append)存在更优替代方案,并提醒注意操作效率问题。
2026-01-22 17:38:12
631
3
原创 Re:从零开始的 C++ STL篇(一)万字干货!全站最全的std::string 全面解析与硬核指南(上)
C++ 标准库中的 std::string 是处理文本数据不可或缺的核心组件。本文旨在提供一份全面而深入的学习指南,带领读者从 string 的基本概念出发,逐步掌握其精髓。文章首先阐述了 string 的定义、作用以及所需包含的 <string> 头文件,并借助图表直观展示其内部可能的结构。紧接着,探讨了字符串编码(特别是 UTF-8)与 string 存储的关系,帮助理解字符是如何被表示和存储的。核心部分围绕 string 的常用功能展开:对象管理: 详述了构造、拷贝构造、赋值 (operator
2026-01-20 18:38:46
1583
3
原创 Re:从零开始的 C++ 入門篇(十二)<过渡章节>模板初阶与STL简单介绍
《C++模板与STL入门指南》是一篇介绍C++模板编程和STL基础知识的博客文章。文章首先阐述了泛型编程的概念及其在C++中的实现方式,重点讲解了函数模板和类模板的定义、分类、格式及实例化过程。通过swap函数等具体示例,详细说明了模板的使用方法和注意事项。第二部分简要介绍了STL(标准模板库)的背景、主要版本和六大组件构成,为后续深入学习STL打下基础。文章采用循序渐进的方式,从模板基础到STL框架,帮助读者理解C++这一重要特性,适合准备进入STL学习的C++开发者阅读参考。
2026-01-15 09:02:44
739
10
原创 Re:从零开始的 C++ 入門篇(十一):全站最全面的C/C++内存管理的底层剖析与硬核指南
《C/C++内存管理深度解析》摘要 本文系统讲解了C/C++内存管理机制。C语言部分详细介绍了malloc、calloc、realloc和free的使用方法及常见错误。C++部分重点分析了new/delete操作符,包括其底层实现原理(operator new/delete)、自定义类型的构造/析构调用机制,以及内存分配失败的异常处理。文章通过汇编代码展示了底层调用过程,对比了malloc/free与new/delete的区别,并探讨了混用情况下的潜在问题。最后简要介绍了placement new技术。全文
2026-01-14 08:47:11
2806
54
原创 Re:从零开始的 C++ 入門篇(十)类和对象·最终篇下:类型转换、static成员、友元、匿名对象、内部类、拷贝编译优化
本文是一篇关于C++中类与对象高级特性的系统性总结文章,涵盖了类型转换、static成员、友元、内部类、匿名对象以及编译器在拷贝过程中的优化机制等核心概念。文章结构清晰,内容详实,旨在帮助读者全面掌握类和对象的进阶知识,并深入理解编译器在底层所做的优化。
2026-01-07 21:46:06
2841
63
原创 Re:从零开始的 C++ 入門篇(九)类和对象·最终篇上:缓冲区同步与流绑定、取地址运算符重载、const成员函数、初始化列表
本文是C++类和对象系列的最终篇,主要讲解三个核心知识点:1. 缓冲区同步与流绑定机制,分析C++输入输出流的效率优化方法;2. 取地址运算符重载的特殊性,包括const版本的必要性和使用场景;3. 构造函数的初始化列表详解,重点说明const成员、引用成员和自定义类型成员的初始化规则,并揭示成员变量初始化的底层原理。文章通过代码示例和原理分析,帮助读者深入理解这些C++核心机制的实际应用和设计思想。
2025-12-30 21:04:32
2246
71
原创 Re:从零开始的 C++ 入門篇(八)类和对象·第五篇:時間计算器
本文介绍了C++日期类(Date)的实现方法,重点讲解了运算符重载技术。文章详细展示了比较运算符(>, >=, <, <=)、算术运算符(+, +=, -, -=, ++, --)以及流运算符(<<, >>)的重载实现。其中特别强调了日期加减运算中的进位处理逻辑,以及流运算符重载中友元函数的使用技巧。通过数组存储月份天数和静态优化等方法提升了代码效率。文章采用测试驱动开发模式,提供了完整的类框架设计,帮助读者深入理解运算符重载在面向对象编程中的实际应用。
2025-12-27 23:14:01
972
8
原创 Re:从零开始的 C++ 入門篇(七)类和对象·第四篇:拷贝构造函数&赋值运算符重载
本文详细讲解了C++中拷贝构造函数和赋值运算符重载的核心概念。主要内容包括:1. 拷贝构造函数的定义、创建方式及调用场景,重点分析了传引用参数避免无限递归的原理;2. 深浅拷贝的区别,以及需要手动实现深拷贝的资源管理类场景;3. 赋值运算符重载的特点、实现规范,以及与拷贝构造的区别;4. 何时需要手动实现这些成员函数的判断法则(Rule of Three/Five)。文章通过具体代码示例,帮助读者理解这些关键概念的实际应用场景和实现细节。
2025-12-24 17:25:17
2754
77
原创 Re:从零开始的 C++ 入門篇(六)类和对象·第三篇:运算符重载
【摘要】本文详细讲解了C++运算符重载的相关知识。首先阐述了运算符重载的意义,指出它使自定义类型能够使用运算符进行运算。然后介绍了运算符重载的定义规则,包括函数命名方式、参数数量等要求。文章以Date类为例,演示了"=="运算符的重载实现,并比较了成员函数与全局函数两种实现方式的区别。特别强调了运算符重载应具有实际意义,以及五种不可重载的运算符及其原因。最后补充介绍了成员函数指针这一高级特性,说明其在日常编程中的罕见使用场景。全文通过具体代码示例,帮助读者深入理解运算符重载的核心概念和实
2025-12-22 12:19:02
1841
58
原创 Re:从零开始的 C++ 入門篇(五)类和对象·第二篇:构造函数与析构函数
本文详细讲解了C++类的默认成员函数中的构造函数和析构函数。构造函数用于对象初始化,可以重载,会自动调用,编译器会生成默认版本但对内置类型处理不一致;析构函数用于资源清理,自动调用,后创建的对象先析构。文章通过日期类和栈类等实例,说明了何时需要自定义这些函数:当涉及资源管理时必须自定义,否则可能导致内存泄漏;对于简单类型或仅含自定义类型成员的类,可使用编译器默认生成的版本。本文为深入理解类和对象提供了重要基础。
2025-12-20 20:36:36
1954
39
原创 Re:从零开始的 C++ 入門篇(四)类和对象·第一篇:定义、访问限定、对象大小、this指针
本文介绍了C++面向对象编程中类与对象的基础知识。主要内容包括:1. 类的定义与成员变量/函数的声明方式,以及访问限定符(public/private)的使用规范;2. 类实例化的概念,对象内存布局和大小计算的内存对齐规则;3. this指针的工作原理及其在成员函数调用中的隐式传递机制;4. 通过栈的实现对比展示了C++封装特性相较于C语言的优势。文章还穿插了常见面试题解析和编码规范建议,为后续深入学习面向对象编程打下基础。
2025-12-17 13:21:13
1859
69
原创 Re:从零开始的 C++ 入門篇(三)基础精讲·下篇:内联函数与空指针
【摘要】本文深入解析C++中内联函数和nullptr的特性与应用。内联函数通过inline关键字实现编译时展开,避免了宏函数的类型安全和调试问题,但需注意其适用场景和编译器优化策略。nullptr作为C++11引入的空指针类型,解决了C语言NULL在类型转换上的缺陷,确保指针类型安全。文章从底层实现到实际应用详细对比了两者的优劣,为C++开发者提供了清晰的使用指导。
2025-12-14 20:09:12
1313
39
原创 Re:从零开始的 C++ 入門篇(二)基础精讲·中篇:引用
本文深入探讨了C++中引用的核心概念与应用。文章首先阐述了引用的本质是变量的别名,与指针相比具有不开辟空间、必须初始化且专一指向的特性。详细分析了引用在传参(替代指针)、返回值优化等方面的应用场景,并重点讲解了const引用的权限控制机制及其与临时对象的关系。通过汇编代码揭示了引用底层实现与指针的相似性,同时指出二者在语法层面的关键差异。文章还对比了C++引用与Java引用的区别,强调C++引用与指针的互补关系。最后总结了引用使用的注意事项,包括栈空间返回引用的危险性和const引用扩展参数传递范围的优势。
2025-12-13 20:19:13
2540
58
原创 VS2022二次元背景板痛改教程!
本文介绍了在Visual Studio 2022中安装ClaudialDE插件并自定义编辑器背景的详细教程。首先通过扩展管理器搜索安装插件,重启后进入设置界面。重点讲解了如何修改背景图片路径、选择合适图片、调整显示尺寸(建议保持原始比例)以及适配边框颜色等操作步骤。文章最后展示了最终效果,并提醒读者可根据个人喜好配置高清背景图,为编程环境增添个性化元素。教程简明实用,适合希望美化VS界面的开发者参考。
2025-12-11 21:47:52
1356
38
原创 Re:从零开始的 C++ 入門篇(一)基础精讲·上篇:命名空间、输入输出、缺省参数、函数重载
本文系统介绍了C++语言的核心特性,包括命名空间、输入输出流、缺省参数和函数重载四大重点内容。命名空间部分详细讲解了如何解决C语言中的命名冲突问题,通过namespace关键字创建独立域;输入输出流章节分析了cout/cin的工作原理及使用技巧;缺省参数部分阐释了全缺省和半缺省参数的设置规则;函数重载章节则说明了通过参数个数、类型和顺序实现多态调用的方法。文章采用理论讲解与代码示例相结合的方式,深入浅出地剖析了C++相较于C语言的改进之处,适合C++初学者系统学习这些基础但重要的语言特性。
2025-12-11 18:18:42
1942
19
原创 Re:从零开始的链式二叉树:建树、遍历、计数、查找、判全、销毁全链路实现与底层剖析
本文系统讲解了链式二叉树的实现与应用,涵盖五大核心内容:1. 遍历方法(前/中/后序递归遍历及层序遍历)及其递归展开图解;2. 节点统计方法(总结点数、叶子节点数、第k层节点数)的递归实现;3. 节点查找的短路搜索策略;4. 完全二叉树的判断原理与队列实现;5. 后序遍历在二叉树销毁中的关键作用。文章通过行政层级比喻解析递归思维,并强调遍历过程中NULL节点的处理细节,提供序列化构建二叉树的代码示例。最后指出二叉树销毁必须遵循后序顺序以避免内存泄漏。
2025-12-01 19:59:48
1181
15
原创 从零开始手搓堆:核心操作实现 + 堆排序 + TopK 算法+ 向上调整 vs 向下调整建堆的时间复杂度严密证明!
本文详细介绍了堆数据结构及其实现方法。堆是一种特殊的完全二叉树,分为大根堆和小根堆,可通过数组高效存储。文章讲解了堆的基本操作(插入、删除、调整算法)及其实现代码,重点分析了堆排序和Top-K算法。其中堆排序采用向下调整建堆法,时间复杂度更优(O(N) vs 向上调整的O(NlogN))。Top-K算法通过建立K大小堆高效处理海量数据。文章还包含堆的数学证明和实际应用示例,为理解堆结构提供了全面指导。
2025-11-26 15:34:24
1460
57
原创 从零开始打造高性能数据结构——手把手教你实现环形缓冲
本文探讨了环形缓冲(循环队列)的原理与实现。相比普通队列,环形缓冲通过取模运算实现指针回绕,解决了空间浪费、频繁移动元素和假溢出等问题。文章详细分析了环形缓冲的数据结构设计,包括k+1空间分配策略以区分队列满/空状态,并给出了循环队列的基本操作实现(插入、删除、判空、判满等)。环形缓冲在进程通信、设备驱动、日志系统等场景中具有重要应用价值,通过牺牲动态性换取高性能和资源可控性,成为底层系统的关键技术支撑。
2025-11-22 18:50:09
1675
50
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅