- 博客(34)
- 收藏
- 关注
原创 【C/C++底层修炼】拆解动态内存管理:四大动态内存函数、六大错误与柔性数组
本文硬核拆解C/C++底层开发中至关重要的动态内存管理机制。文章从栈与堆的内存差异切入,深度剖析malloc、free、calloc与realloc四大核心函数的底层运作逻辑。针对开发痛点,独家总结了内存泄漏、野指针越界、重复释放等6大致命内存错误,并结合4道大厂经典笔试题,直击传值传址与生命周期等核心考点。最后,文章进阶探讨了C99标准下的黑科技“柔性数组”,揭秘其在防泄漏与提升CPU缓存命中率上的巨大优势。全篇带你建立完整的内存空间模型,真正做到“心中有内存”,写出极致安全的底层代码。
2026-03-25 14:00:47
191
1
原创 C++ 类和对象(下):初始化列表、static 成员与编译器优化深度剖析
本文是C++“类和对象”的硬核终结篇,直击进阶开发与大厂笔试痛点。文章深度剖析初始化列表的底层机制与顺序陷阱,探讨隐式类型转换及 explicit 防御编程;结合牛客实战题与经典笔试题,拆解 static 成员特性、内部类封装,彻底理清全局、局部与静态对象的构造析构时间线。最后揭秘匿名对象妙用,并多维度推演现代编译器(RVO/NRVO)如何抹平拷贝开销榨干极致性能。带你突破语法表层,建立真正的C++底层工程思维!
2026-03-23 17:30:53
415
14
原创 类和对象(中):六大默认成员函数与运算符重载全解析
本文是C++面向对象开发的进阶实战指南,深度剖析了类的“六大默认成员函数”。文章从工程实战出发,详细讲解了构造函数的自动初始化机制(结合MyQueue经典案例)与析构函数的底层资源清理避坑。硬核拆解了拷贝构造与赋值重载中的“深浅拷贝”灾难,并总结了参数引用的致命陷阱。此外,全面梳理了运算符重载的铁律、前置/后置++的底层区分、流操作符的友元实现及const权限法则。拒绝死记硬背,带你从底层把控对象生命周期与内存管理,彻底告别内存泄漏与野指针,写出健壮的C++工程代码!
2026-03-23 17:21:57
816
22
原创 类和对象(上)
本文是C++“类和对象”的入门篇(上),系统介绍了面向对象编程的基础核心概念。文章从C语言的struct顺滑过渡到C++的class,详细讲解了类的定义、访问限定符及声明与定义分离的工程规范。随后深入底层,剖析了对象的实例化机制、存储模型与内存对齐规则,并深度揭秘了隐藏的this指针原理。最后,通过经典实战检验题与C/C++的编程体验对比,帮助读者扎实底层基础,完成从面向过程到面向对象思维的初步跨越。
2026-03-18 19:51:40
718
28
原创 郑州轻工业大学“筑梯杯” 2025级新生程序设计大赛暨省内高校邀请赛——题解
本文为郑州轻工业大学“筑梯杯”2025级程序设计大赛暨省内高校邀请赛的全面题解。文章依据难度梯度,将题目划分为签到、简单、中档、困难及防AK五大模块进行系统复盘。内容不仅包含直观的基础解法,更深入剖析了从暴力模拟到复杂度极致优化的进阶过程。重点涵盖贪心策略、高精度移位运算、状态压缩(位运算枚举)、组合数学推导以及“二分答案+数学充要条件”等核心竞赛技巧。旨在通过纯粹的数学推演与思维“降维打击”,帮助大家拓宽算法思路,写出更高效优雅的 C++ 代码。
2026-03-18 19:49:08
370
8
原创 C++入门基础指南
本文介绍了C++基础语法入门知识,主要内容包括: C++的第一个程序(hello world示例) 命名空间(namespace)的概念与使用方法 C++输入输出(cin/cout)的基本使用 缺省参数(默认参数)的定义规则 函数重载的概念与实现条件 引用的基本概念与定义方法 文章通过对比C语言和C++的实现方式,展示了C++在命名空间、输入输出等方面的改进。重点讲解了namespace解决命名冲突的原理、C++标准库std的使用规范、缺省参数的使用规则以及函数重载的实现条件。最后简要介绍了引用的基本概念。
2026-03-14 09:33:03
913
41
原创 C++的输入输出(下)(算法竞赛类)
本文是C/C++算法竞赛入门的输入输出进阶指南!文章总结了题目中单组与多组测试用例的常见处理模板,分享了巧妙读取带空格字符串与提取数字位数的实战小技巧。重点剖析了 `scanf/printf` 与 `cin/cout` 的性能差异,并给出了终极提速秘籍:通过取消同步与绑定(`ios::sync_with_stdio(false)`等)来大幅提升 `cin/cout` 的读取速度。同时高亮了避坑细节——关流优化后务必使用 `'\n'` 替代 `endl`,防止缓冲区频繁刷新拖慢速度。助你刷题彻底告别TLE
2026-03-14 09:31:35
376
6
原创 牛客小白月赛126
这篇文章是牛客小白月赛126的题目解析,围绕多道“小红”主题题目展开,涵盖A“小红打舞萌”、B“小红写谱”、C“小红出勤”、D“小红越级(easy)”、G“小红越级(hard)”、E“小红做梦”、F“小红开机厅”等题型。每道题的解析均按“题目-思路-代码”的结构呈现:先展示题目内容,再讲解解题思路,最后附上实现代码,为用户提供了从题目理解到代码落地的完整指导。
2026-01-01 18:24:21
858
70
原创 C++ string 类详解:概念、常用操作与实践(算法竞赛类)
这篇是 C++ string 实用指南:需含头文件<string>,支持多方式创建字符串;输入分cin(常规)与getline(带空格输入,含默认 / 自定义结束标志)。 size()取长度,迭代器begin()/end()实现遍历、改字符;操作含push_back尾插、+=拼接、insert指定插入、pop_back尾删;find()多类型查找、substr()截取(二者常配合)。 它支持关系运算,还可通过stoi/stod转数值、to_string转字符串,实现双向类型转换。
2026-01-01 18:17:03
1438
56
原创 星轨初途创作纪念日:这程文字星路,刚走满 128 个明亮日子
《星轨初途创作纪念日:这程文字星路,刚走满128个明亮日子》是我的创作纪念文。起初我将创作当作学习笔记,意外结缘志趣相投的朋友后,逐渐爱上这段分享时光。至今我写下24篇文章,收获超2.6万访问量与百余粉丝,也结识了同好博主与技术大佬,常交流学习、互促成长。如今创作已成日常,是我巩固知识的独特方式;期间既产出了心仪的算法文章,解题时的思维突破也让我欣喜。文末还分享了我的短期学习计划与后端开发的长期目标,盼与大家继续在文字星路上同行。
2025-12-26 16:43:40
569
11
原创 郑州轻工业大学2025天梯赛解题
本文是郑州轻工业大学2025天梯赛的解题总结,以“三阶段”梳理题目与对应解法:第一阶段聚焦基础题,涉及比较、枚举等思路,如“奇变偶不变”覆盖暴力枚举与前缀和两种方法;第二阶段进阶题则包含二次函数、差分+前缀和等技巧,像“熊孩子开关灯”对比了暴力与优化解法;第三阶段聚焦双指针、数位独立、链表模拟等方法,例如“信号基站”题从暴力枚举优化为数位独立思路,“链表奇偶拆分”通过模拟实现节点拆分。文章核心是展示从基础到进阶的解题逻辑,强调针对不同题目从暴力思路转向针对性算法优化,提升解题效率。
2025-12-26 15:25:46
933
6
原创 C++的条件判断与循环及数组(算法竞赛类)
本文是算法竞赛向 C++ 教程,聚焦条件判断、循环及数组相关内容。数组部分:讲解 auto 关键字,解析范围 for 的功能、语法,明确其适配静态数组、STL 容器的场景与动态数组等受限场景,附带 C++11 编译器配置;介绍 memset(数组内容设置)、memcpy(数组拷贝)的功能、头文件及实现。字符数组部分:详解带空格字符串读取法(gets/fgets、改 scanf 格式、getchar 逐读),讲解 strcpy、strcat 的使用,对比其与 memcpy 的差异,最后补充函数头文件说明,助力
2025-12-01 19:28:22
1669
47
原创 C++的输入输出(上)(算法竞赛类)
本文聚焦算法竞赛场景,讲解C++输入输出相关知识,内容涵盖:先介绍`getchar`与`putchar`的功能、头文件、返回值等细节及二者结合使用的方式;接着提及`scanf`、`printf`及占位符的相关内容;随后讲解`cin`和`cout`的基础用法、连续输入输出操作,并分析其优劣势;还补充了`cout`的格式输出技巧(含控制宽度、数值格式、整数格式、对齐方式等),帮助读者掌握算法竞赛中C++输入输出的核心用法。
2025-11-29 20:28:58
1674
57
原创 C++入门(算法竞赛类)
这是一篇C++入门指南类文章,核心内容围绕C++基础学习展开:首先介绍工具安装的相关内容,随后聚焦“第一个C++程序”,涵盖基础程序框架、头文件的相关知识、cin与cout的入门(含核心流对象、关键操作符、C++输入输出的优势),以及名字空间的核心作用、std名字空间的概念与两种使用方式;后续还将讲解数据类型、变量和常量、算术操作等内容,最后以结束语收尾,整体是面向C++初学者的基础入门内容。
2025-11-29 12:42:11
1289
53
原创 数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析
本文是初阶数据结构与算法专栏内容,聚焦计数排序及排序算法分析。文中先介绍非比较排序中的计数排序:讲解其概念、算法步骤,给出代码实现,分析其时间与空间复杂度,总结优劣势并做排序对比。随后解析排序算法的复杂度与稳定性:阐释算法稳定性核心概念,拆解各类排序算法的空间复杂度与稳定性,辅以图表直观呈现。文末含补充内容与结束语,本专栏至此完结,后续将更新加餐内容,下一篇将开启C++学习。
2025-11-27 13:24:32
1291
17
原创 数据结构排序算法详解(4)——归并排序(附动图)
本文围绕归并排序展开讲解,开篇介绍其核心思想与步骤(搭配动图辅助理解)。随后阐述递归实现归并排序的代码及核心内容分析;重点讲解非递归版本,说明其实现思路,解析关键的gap迭代与分组逻辑,以及“分组→合并→覆盖”的执行闭环,并附代码实现。文章还说明归并排序的时间复杂度,阐述其特性,将其与四大排序做对比,最后提供总代码。全文清晰呈现归并排序的两种实现方式、核心细节与排序对比,助力读者全面掌握归并排序。
2025-11-26 16:19:38
975
42
原创 数据结构排序算法详解(3)——交换排序(附动图)
本文围绕交换排序展开讲解,先介绍冒泡排序的概念、实现方式、时间复杂度及特性。核心聚焦快速排序:涵盖其由来与思想,Hoare原版递归实现、优化策略(三数取中、小区间优化),以及Hoare前后指针版、挖坑法快速排序,还涉及三类快排的封装与时间复杂度分析。接着补充快速排序的非递归实现,讲解用栈、队列实现快排的方式及对应时间复杂度。之后对比插入排序、选择排序与交换排序的特点,最后提供栈、队列的实现代码及排序总代码,以结束语作结。
2025-11-26 08:39:35
876
24
原创 数据结构排序算法详解(2)——选择排序(附动图)
本文聚焦选择排序体系展开解析,涵盖直接选择排序、堆排序,及与插入排序的对比。首先介绍直接选择排序的概念与实现,说明其时间复杂度为O(n²),并梳理其核心特性;继而讲解堆排序的概念及基于堆结构的实现逻辑,指出其时间复杂度稳定为O(nlogn)、空间复杂度O(1),还提及可用于Top-K问题(效率达O(n+klogn)),同时总结其特性。文章还对比了插入排序与选择排序的差异,附总代码示例辅助实操理解。全文以清晰的层级,为选择排序的学习、应用提供了实用指引。
2025-11-25 12:12:25
1236
29
原创 数据结构排序算法详解(1)——介绍及插入排序(附动图)
本文聚焦插入类排序算法,先介绍排序的基础概念及在数据处理、查找等场景的应用价值。解析直接插入排序:通过逐个插入前序有序序列实现排序,时间复杂度最好O(n)、最坏O(n²),为稳定排序,适用于小规模或近有序数据。继而阐述希尔排序(直接插入的优化):以“分组预排序+逐步缩小组距”让数据先“基本有序”,复杂度依间隔序列(如Hibbard序列为O(n^1.5)),虽不稳定但大幅提升效率。最后对比两者在效率、适用场景、稳定性的差异,为插入类排序的场景选择提供参考,明确其在基础算法体系中的实用价值。
2025-11-25 12:08:59
1101
33
原创 数据结构二叉树应用实战:多场景练习题强化巩固
本文聚焦二叉树应用实战,通过多场景练习题构建“理论+编码”的巩固体系:- **选择题模块**:涵盖二叉树性质(节点数、高度等)和链式结构遍历两类题目,夯实理论基础。- **OJ练习模块**:精选7类经典题型,包括单值二叉树、相同树、对称树、三种遍历及子树识别等,覆盖树的特性判断、遍历实现、子树分析等核心场景,提升实战编码能力。整体形成从理论理解到代码落地的完整学习闭环,助力深化二叉树应用认知与实践能力。
2025-11-22 22:15:29
1048
23
原创 数据结构二叉树之链式结构(3)(下)
本文围绕二叉树的实现与操作展开,首先详细阐述二叉树链式结构的多种操作实现,包括统计二叉树结点个数(涵盖局部变量、全局变量、结构体加变量、添加size变量及最优递归实现等方式)、叶子结点个数、第K层节点个数、二叉树高度、查找值为x的结点、二叉树的销毁及总代码;其次讲解二叉树层序遍历的实现;接着深入分析深度优先遍历(DFS)和广度优先遍历(BFS)的核心概念、工作原理、实现方式及关键区别;然后说明判断是否为完全二叉树的方法;最后提供包含队列(Queue.h、Queue.c)和二叉树(Tree.h、Tree.c、
2025-11-22 12:36:57
1096
42
原创 数据结构二叉树之链式结构(3)(上)
这篇文章围绕二叉树的核心操作展开,**前言**引出主题后,首先讲解**二叉树链式结构的创建**,涵盖二叉树结构的创建方法及手动创建链式二叉树的具体操作;接着深入阐述**二叉树的遍历**,包括遍历规则,以及前序遍历(含思路和代码实现)、中序遍历、后序遍历的详细内容;最后以**结束语**总结全文,帮助读者系统掌握二叉树的链式结构构建与遍历原理,是一份聚焦二叉树基础操作的技术类内容。
2025-11-19 16:19:43
1402
39
原创 函数的栈帧的创建和销毁(超详细版本图文丰富)
函数的栈帧的创建和销毁(超详细版本图文丰富),这篇文章以超详细的图文形式,深入程序运行的“幕后”解析**函数栈帧的创建与销毁**。内容先阐述理解函数栈帧的必要性,介绍栈的概念、数据结构栈与程序运行栈的对比,以及相关寄存器和汇编指令;再分步拆解函数栈帧创建(如`push ebp`、`mov ebp esp`等操作)与销毁的具体过程;最后围绕局部变量创建与随机值、参数传递、形实参关系、函数返回等问题进行回顾总结,帮助读者透彻掌握函数调用的底层逻辑。
2025-11-19 07:34:24
1264
44
原创 《数据结构二叉树之堆 —— 优先队列与排序的高效实现(2)(下)》
本篇主要比较向下调整法和向上调整法的时间复杂度和堆排序的时间复杂度以及TOP-K问题
2025-11-16 02:45:00
2028
43
原创 文件操作入门(下)—— 随机读写、结尾判断、缓冲区及实战题目
本文主要紧接着上一篇讲解,讲解文件的随机读写和文件读取结束的判断,已及文件缓冲区
2025-11-15 17:04:11
1026
25
原创 文件操作入门(上)—— 文件类型及顺序读写基础(含打开关闭)
本文聚焦文件操作核心知识,助读者快速掌握:文件是数据持久化载体,流是数据传输抽象,含`stdin`等3个标准流。核心组件包括`FILE*`文件指针、`fopen`(指定路径与打开方式)和`fclose`(释放资源),路径分绝对与相对两类。重点讲解8个顺序读写函数(字符级`fgetc/fputc`、文本行级`fgets/fputs`、格式化`fscanf/fprintf`、二进制`fread/fwrite`)及代码效果。还明确格式化与不格式化数据的结构、可读性、用途差异,对比`scanf/fscanf/ssc
2025-11-15 00:00:00
817
23
原创 数据结构之初识二叉树(1)——核心概念入门
(1)若规定根结点的层数为1,则一棵非空二叉树的第 i 层上最多有2i-1个结点(2)若规定根结点的层数为1,则深度为 h 的二叉树的最大结点数是2h(3)对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为n2 ,则有 n0=n2 +1第3条如图🟧 (n2=1)/ \/ \ / \
2025-11-13 09:00:00
897
19
原创 我的第一篇博客,欢迎大家交流
在编程方面有了一定的能力后,我会不断讨论并分析代码,并在CSDN加强自己的了解,积累经验。C语言是我第一个接触到的编程语言,初步学习,就感受到它的魅力。在时间的花费上,计划每周花费18个小时左右,大部分用于C语言的学习与实践,愿对编程的每一次了解,都将成为我前进的动力和能力。对此没有很多了解,但我相信在我不断了解和丰富自身后,可以进入一些良好发展空间的公司,并不断学习,推动自己的职业发展,加油。我是一名大一软件工程专业的学生,初步接触编程,了解并不多,但我相信我能在编程世界找到属于自己的方向,并不断前行。
2025-08-16 20:31:35
647
16
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅