自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦是现实的延续,现实是梦的结束。

主要专栏《C++开发类》《C++竞赛类》《算法及编程题分享》《C语言》《数据结构》《分享》,后续会持续更新,感谢大家的支持啦

  • 博客(42)
  • 收藏
  • 关注

原创 【C++进阶】拒绝黑盒!纯手撕 list 底层源码与迭代器高级封装

四、核心接口:增删查改与容量操作 1 插入与删除 list 的灵魂在于插入和删除操作的高效性($O(1)$ 复杂度)。让我们看看如何实现: // 在pos位置前插入值为val的节点 iterator insert(iterator pos, const T& val) { Node* newNode = new Node(val); // 创建新节点 Node* cur = pos._node; // pos位置的节点 Node* prev = cur->_prev; // 前驱节点 // 调整四根指针的连

2026-05-28 22:58:04 645 15

原创 【C++ 进阶】list 核心机制解析及 vector 巅峰对决

这篇文章介绍了C++ STL中的list(双向循环链表)容器,主要内容包括: list的本质与结构:带头双向循环链表,包含哨兵节点实现简化操作,支持双向遍历; 核心特性对比vector: 优点:任意位置O(1)插入删除、按需分配内存、迭代器稳定性高; 缺点:不支持随机访问、缓存命中率低、额外指针存储开销; 常用构造方式:无参构造、填充构造、拷贝构造及迭代器区间构造; 迭代器使用:演示正向/反向遍历方法,强调只能通过迭代器访问元素。 摘要突出list与vector的核心差异,说明其适用场景(频繁增删),并保持

2026-05-28 20:49:40 615 5

原创 【C++进阶】从零手撕 vector 底层源码:解密三大原生指针的内存魔法

C++ vector 实现核心解析 本文深入剖析了 C++ vector 容器的底层实现原理,重点讲解了其内存管理机制和关键功能实现。文章首先介绍了 vector 的基本框架,通过三个核心指针(_start、_finish、_end_of_storage)来管理连续内存空间。然后详细讲解了迭代器支持、容量接口访问等基本功能的实现方法。 在内存管理部分,文章特别强调了 reserve 函数的正确实现方式,指出浅拷贝可能导致的内存崩溃问题,并提供了解决方案。最后,文章还介绍了默认构造、拷贝构造和析构函数等关键成

2026-05-26 10:30:00 631 30

原创 【C++进阶】vector 类从入门到精通:核心接口与内存机制实战指南

摘要 本文深入讲解了C++ STL中的vector容器,重点介绍了其核心特性和使用方法。vector作为动态数组,解决了原生数组固定大小的痛点,具备自动扩容、高效随机访问和丰富接口等优势。文章详细演示了迭代器的正向/反向遍历方式,并展示了四种常用构造方法:无参构造、填充构造、拷贝构造和迭代器区间构造。通过代码示例,帮助读者快速掌握vector的基础操作,为后续深入学习STL容器打下坚实基础。 (字数:149字)

2026-05-26 08:00:00 429 14

原创 C++ 模拟实现:string 类的底层真相与 Copy-and-Swap 现代黑科技

C++ string类底层实现解析 本文深入探讨了C++ string类的底层实现机制,主要包括以下核心内容: 底层构造逻辑:string类通过三个私有成员变量(_str、_size、_capacity)来管理字符串数据、长度和容量。 内存管理关键: 实现深拷贝的构造函数、拷贝构造函数和析构函数 避免浅拷贝导致的Double Free问题 迭代器实现:利用原生指针作为迭代器,支持范围for循环遍历 下标访问优化: 提供可读可写和只读两个版本的operator[]重载 通过assert进行越界检查 赋值运算符

2026-05-25 11:10:52 546 6

原创 C++ string类从入门到精通:核心用法与实战指南

本文介绍了C++中string类的核心用法,重点对比了C语言字符串的劣势与string类的优势。string类通过封装char*数组,实现了自动内存管理和丰富操作功能。文章详细讲解了字符串的4种构造方式、3种遍历方法(下标访问、迭代器、范围for循环),并强调了容量操作的重要性。作为STL的重要组成部分,string类极大简化了字符串处理,是C++开发者必须掌握的核心工具之一。后续文章将深入剖析string的底层实现原理。

2026-05-25 09:58:21 425

原创 【C++进阶】让编译器替你打工!一文打通泛型编程与 C++ 模板

本文深度剖析C++泛型编程与模板(Template)初阶的核心机制,带你告别冗余的函数重载,让“编译器替你打工”。文章详述了函数模板的底层类型推演原理,直击隐式/显式实例化中的类型冲突痛点,并给出了多模板参数(T1, T2)的硬核解决方案。全面总结了大厂常考的模板与非模板函数匹配原则。最后结合实战,规范了类模板的定义格式、类外成员函数作用域及避坑指南。干货满满,助你打破类型壁垒,为进阶STL标准模板库夯实底层内功!

2026-03-30 19:49:41 585 38

原创 C++ 动态内存管理:new/delete 的底层真相与避坑黑科技

本文深度剖析C/C++动态内存管理的底层逻辑,带你彻底扫清大厂面试与开发盲区。文章从程序四大内存战区切入,全方位对比malloc/free与new/delete的核心差异。不仅细致拆解了new/delete在对象及对象数组上的实战语法与异常处理机制,更硬核深挖了operator new与operator delete的底层源码实现。针对高危踩坑点,文章抽丝剥茧般揭秘了交叉释放导致内存泄漏与程序崩溃的底层真相(44字节Cookie之谜),最后拓展了内存池必备黑科技placement-new的用法。干货满满,助

2026-03-26 14:36:14 536 20

原创 【C/C++底层修炼】拆解动态内存管理:四大动态内存函数、六大错误与柔性数组

本文硬核拆解C/C++底层开发中至关重要的动态内存管理机制。文章从栈与堆的内存差异切入,深度剖析malloc、free、calloc与realloc四大核心函数的底层运作逻辑。针对开发痛点,独家总结了内存泄漏、野指针越界、重复释放等6大致命内存错误,并结合4道大厂经典笔试题,直击传值传址与生命周期等核心考点。最后,文章进阶探讨了C99标准下的黑科技“柔性数组”,揭秘其在防泄漏与提升CPU缓存命中率上的巨大优势。全篇带你建立完整的内存空间模型,真正做到“心中有内存”,写出极致安全的底层代码。

2026-03-25 14:00:47 576 15

原创 C++ 类和对象(下):初始化列表、static 成员与编译器优化深度剖析

本文是C++“类和对象”的硬核终结篇,直击进阶开发与大厂笔试痛点。文章深度剖析初始化列表的底层机制与顺序陷阱,探讨隐式类型转换及 explicit 防御编程;结合牛客实战题与经典笔试题,拆解 static 成员特性、内部类封装,彻底理清全局、局部与静态对象的构造析构时间线。最后揭秘匿名对象妙用,并多维度推演现代编译器(RVO/NRVO)如何抹平拷贝开销榨干极致性能。带你突破语法表层,建立真正的C++底层工程思维!

2026-03-23 17:30:53 650 30

原创 类和对象(中):六大默认成员函数与运算符重载全解析

本文是C++面向对象开发的进阶实战指南,深度剖析了类的“六大默认成员函数”。文章从工程实战出发,详细讲解了构造函数的自动初始化机制(结合MyQueue经典案例)与析构函数的底层资源清理避坑。硬核拆解了拷贝构造与赋值重载中的“深浅拷贝”灾难,并总结了参数引用的致命陷阱。此外,全面梳理了运算符重载的铁律、前置/后置++的底层区分、流操作符的友元实现及const权限法则。拒绝死记硬背,带你从底层把控对象生命周期与内存管理,彻底告别内存泄漏与野指针,写出健壮的C++工程代码!

2026-03-23 17:21:57 942 24

原创 类和对象(上)

本文是C++“类和对象”的入门篇(上),系统介绍了面向对象编程的基础核心概念。文章从C语言的struct顺滑过渡到C++的class,详细讲解了类的定义、访问限定符及声明与定义分离的工程规范。随后深入底层,剖析了对象的实例化机制、存储模型与内存对齐规则,并深度揭秘了隐藏的this指针原理。最后,通过经典实战检验题与C/C++的编程体验对比,帮助读者扎实底层基础,完成从面向过程到面向对象思维的初步跨越。

2026-03-18 19:51:40 775 28

原创 郑州轻工业大学“筑梯杯” 2025级新生程序设计大赛暨省内高校邀请赛——题解

本文为郑州轻工业大学“筑梯杯”2025级程序设计大赛暨省内高校邀请赛的全面题解。文章依据难度梯度,将题目划分为签到、简单、中档、困难及防AK五大模块进行系统复盘。内容不仅包含直观的基础解法,更深入剖析了从暴力模拟到复杂度极致优化的进阶过程。重点涵盖贪心策略、高精度移位运算、状态压缩(位运算枚举)、组合数学推导以及“二分答案+数学充要条件”等核心竞赛技巧。旨在通过纯粹的数学推演与思维“降维打击”,帮助大家拓宽算法思路,写出更高效优雅的 C++ 代码。

2026-03-18 19:49:08 425 9

原创 C++入门基础指南

本文介绍了C++基础语法入门知识,主要内容包括: C++的第一个程序(hello world示例) 命名空间(namespace)的概念与使用方法 C++输入输出(cin/cout)的基本使用 缺省参数(默认参数)的定义规则 函数重载的概念与实现条件 引用的基本概念与定义方法 文章通过对比C语言和C++的实现方式,展示了C++在命名空间、输入输出等方面的改进。重点讲解了namespace解决命名冲突的原理、C++标准库std的使用规范、缺省参数的使用规则以及函数重载的实现条件。最后简要介绍了引用的基本概念。

2026-03-14 09:33:03 978 42

原创 C++的输入输出(下)(算法竞赛类)

本文是C/C++算法竞赛入门的输入输出进阶指南!文章总结了题目中单组与多组测试用例的常见处理模板,分享了巧妙读取带空格字符串与提取数字位数的实战小技巧。重点剖析了 `scanf/printf` 与 `cin/cout` 的性能差异,并给出了终极提速秘籍:通过取消同步与绑定(`ios::sync_with_stdio(false)`等)来大幅提升 `cin/cout` 的读取速度。同时高亮了避坑细节——关流优化后务必使用 `'\n'` 替代 `endl`,防止缓冲区频繁刷新拖慢速度。助你刷题彻底告别TLE

2026-03-14 09:31:35 431 6

原创 牛客小白月赛126

这篇文章是牛客小白月赛126的题目解析,围绕多道“小红”主题题目展开,涵盖A“小红打舞萌”、B“小红写谱”、C“小红出勤”、D“小红越级(easy)”、G“小红越级(hard)”、E“小红做梦”、F“小红开机厅”等题型。每道题的解析均按“题目-思路-代码”的结构呈现:先展示题目内容,再讲解解题思路,最后附上实现代码,为用户提供了从题目理解到代码落地的完整指导。

2026-01-01 18:24:21 893 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 1547 56

原创 星轨初途创作纪念日:这程文字星路,刚走满 128 个明亮日子

《星轨初途创作纪念日:这程文字星路,刚走满128个明亮日子》是我的创作纪念文。起初我将创作当作学习笔记,意外结缘志趣相投的朋友后,逐渐爱上这段分享时光。至今我写下24篇文章,收获超2.6万访问量与百余粉丝,也结识了同好博主与技术大佬,常交流学习、互促成长。如今创作已成日常,是我巩固知识的独特方式;期间既产出了心仪的算法文章,解题时的思维突破也让我欣喜。文末还分享了我的短期学习计划与后端开发的长期目标,盼与大家继续在文字星路上同行。

2025-12-26 16:43:40 595 11

原创 郑州轻工业大学2025天梯赛解题

本文是郑州轻工业大学2025天梯赛的解题总结,以“三阶段”梳理题目与对应解法:第一阶段聚焦基础题,涉及比较、枚举等思路,如“奇变偶不变”覆盖暴力枚举与前缀和两种方法;第二阶段进阶题则包含二次函数、差分+前缀和等技巧,像“熊孩子开关灯”对比了暴力与优化解法;第三阶段聚焦双指针、数位独立、链表模拟等方法,例如“信号基站”题从暴力枚举优化为数位独立思路,“链表奇偶拆分”通过模拟实现节点拆分。文章核心是展示从基础到进阶的解题逻辑,强调针对不同题目从暴力思路转向针对性算法优化,提升解题效率。

2025-12-26 15:25:46 969 6

原创 C++的条件判断与循环及数组(算法竞赛类)

本文是算法竞赛向 C++ 教程,聚焦条件判断、循环及数组相关内容。数组部分:讲解 auto 关键字,解析范围 for 的功能、语法,明确其适配静态数组、STL 容器的场景与动态数组等受限场景,附带 C++11 编译器配置;介绍 memset(数组内容设置)、memcpy(数组拷贝)的功能、头文件及实现。字符数组部分:详解带空格字符串读取法(gets/fgets、改 scanf 格式、getchar 逐读),讲解 strcpy、strcat 的使用,对比其与 memcpy 的差异,最后补充函数头文件说明,助力

2025-12-01 19:28:22 1766 47

原创 C++的输入输出(上)(算法竞赛类)

本文聚焦算法竞赛场景,讲解C++输入输出相关知识,内容涵盖:先介绍`getchar`与`putchar`的功能、头文件、返回值等细节及二者结合使用的方式;接着提及`scanf`、`printf`及占位符的相关内容;随后讲解`cin`和`cout`的基础用法、连续输入输出操作,并分析其优劣势;还补充了`cout`的格式输出技巧(含控制宽度、数值格式、整数格式、对齐方式等),帮助读者掌握算法竞赛中C++输入输出的核心用法。

2025-11-29 20:28:58 1758 57

原创 C++入门(算法竞赛类)

这是一篇C++入门指南类文章,核心内容围绕C++基础学习展开:首先介绍工具安装的相关内容,随后聚焦“第一个C++程序”,涵盖基础程序框架、头文件的相关知识、cin与cout的入门(含核心流对象、关键操作符、C++输入输出的优势),以及名字空间的核心作用、std名字空间的概念与两种使用方式;后续还将讲解数据类型、变量和常量、算术操作等内容,最后以结束语收尾,整体是面向C++初学者的基础入门内容。

2025-11-29 12:42:11 1313 53

原创 数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析

本文是初阶数据结构与算法专栏内容,聚焦计数排序及排序算法分析。文中先介绍非比较排序中的计数排序:讲解其概念、算法步骤,给出代码实现,分析其时间与空间复杂度,总结优劣势并做排序对比。随后解析排序算法的复杂度与稳定性:阐释算法稳定性核心概念,拆解各类排序算法的空间复杂度与稳定性,辅以图表直观呈现。文末含补充内容与结束语,本专栏至此完结,后续将更新加餐内容,下一篇将开启C++学习。

2025-11-27 13:24:32 1315 17

原创 数据结构排序算法详解(4)——归并排序(附动图)

本文围绕归并排序展开讲解,开篇介绍其核心思想与步骤(搭配动图辅助理解)。随后阐述递归实现归并排序的代码及核心内容分析;重点讲解非递归版本,说明其实现思路,解析关键的gap迭代与分组逻辑,以及“分组→合并→覆盖”的执行闭环,并附代码实现。文章还说明归并排序的时间复杂度,阐述其特性,将其与四大排序做对比,最后提供总代码。全文清晰呈现归并排序的两种实现方式、核心细节与排序对比,助力读者全面掌握归并排序。

2025-11-26 16:19:38 1070 42

原创 数据结构排序算法详解(3)——交换排序(附动图)

本文围绕交换排序展开讲解,先介绍冒泡排序的概念、实现方式、时间复杂度及特性。核心聚焦快速排序:涵盖其由来与思想,Hoare原版递归实现、优化策略(三数取中、小区间优化),以及Hoare前后指针版、挖坑法快速排序,还涉及三类快排的封装与时间复杂度分析。接着补充快速排序的非递归实现,讲解用栈、队列实现快排的方式及对应时间复杂度。之后对比插入排序、选择排序与交换排序的特点,最后提供栈、队列的实现代码及排序总代码,以结束语作结。

2025-11-26 08:39:35 905 24

原创 数据结构排序算法详解(2)——选择排序(附动图)

本文聚焦选择排序体系展开解析,涵盖直接选择排序、堆排序,及与插入排序的对比。首先介绍直接选择排序的概念与实现,说明其时间复杂度为O(n²),并梳理其核心特性;继而讲解堆排序的概念及基于堆结构的实现逻辑,指出其时间复杂度稳定为O(nlogn)、空间复杂度O(1),还提及可用于Top-K问题(效率达O(n+klogn)),同时总结其特性。文章还对比了插入排序与选择排序的差异,附总代码示例辅助实操理解。全文以清晰的层级,为选择排序的学习、应用提供了实用指引。

2025-11-25 12:12:25 1263 29

原创 数据结构排序算法详解(1)——介绍及插入排序(附动图)

本文聚焦插入类排序算法,先介绍排序的基础概念及在数据处理、查找等场景的应用价值。解析直接插入排序:通过逐个插入前序有序序列实现排序,时间复杂度最好O(n)、最坏O(n²),为稳定排序,适用于小规模或近有序数据。继而阐述希尔排序(直接插入的优化):以“分组预排序+逐步缩小组距”让数据先“基本有序”,复杂度依间隔序列(如Hibbard序列为O(n^1.5)),虽不稳定但大幅提升效率。最后对比两者在效率、适用场景、稳定性的差异,为插入类排序的场景选择提供参考,明确其在基础算法体系中的实用价值。

2025-11-25 12:08:59 1130 33

原创 数据结构二叉树应用实战:多场景练习题强化巩固

本文聚焦二叉树应用实战,通过多场景练习题构建“理论+编码”的巩固体系:- **选择题模块**:涵盖二叉树性质(节点数、高度等)和链式结构遍历两类题目,夯实理论基础。- **OJ练习模块**:精选7类经典题型,包括单值二叉树、相同树、对称树、三种遍历及子树识别等,覆盖树的特性判断、遍历实现、子树分析等核心场景,提升实战编码能力。整体形成从理论理解到代码落地的完整学习闭环,助力深化二叉树应用认知与实践能力。

2025-11-22 22:15:29 1083 23

原创 数据结构二叉树之链式结构(3)(下)

本文围绕二叉树的实现与操作展开,首先详细阐述二叉树链式结构的多种操作实现,包括统计二叉树结点个数(涵盖局部变量、全局变量、结构体加变量、添加size变量及最优递归实现等方式)、叶子结点个数、第K层节点个数、二叉树高度、查找值为x的结点、二叉树的销毁及总代码;其次讲解二叉树层序遍历的实现;接着深入分析深度优先遍历(DFS)和广度优先遍历(BFS)的核心概念、工作原理、实现方式及关键区别;然后说明判断是否为完全二叉树的方法;最后提供包含队列(Queue.h、Queue.c)和二叉树(Tree.h、Tree.c、

2025-11-22 12:36:57 1118 42

原创 数据结构二叉树之链式结构(3)(上)

这篇文章围绕二叉树的核心操作展开,**前言**引出主题后,首先讲解**二叉树链式结构的创建**,涵盖二叉树结构的创建方法及手动创建链式二叉树的具体操作;接着深入阐述**二叉树的遍历**,包括遍历规则,以及前序遍历(含思路和代码实现)、中序遍历、后序遍历的详细内容;最后以**结束语**总结全文,帮助读者系统掌握二叉树的链式结构构建与遍历原理,是一份聚焦二叉树基础操作的技术类内容。

2025-11-19 16:19:43 1430 40

原创 函数的栈帧的创建和销毁(超详细版本图文丰富)

函数的栈帧的创建和销毁(超详细版本图文丰富),这篇文章以超详细的图文形式,深入程序运行的“幕后”解析**函数栈帧的创建与销毁**。内容先阐述理解函数栈帧的必要性,介绍栈的概念、数据结构栈与程序运行栈的对比,以及相关寄存器和汇编指令;再分步拆解函数栈帧创建(如`push ebp`、`mov ebp esp`等操作)与销毁的具体过程;最后围绕局部变量创建与随机值、参数传递、形实参关系、函数返回等问题进行回顾总结,帮助读者透彻掌握函数调用的底层逻辑。

2025-11-19 07:34:24 1323 44

原创 《数据结构二叉树之堆 —— 优先队列与排序的高效实现(2)(下)》

本篇主要比较向下调整法和向上调整法的时间复杂度和堆排序的时间复杂度以及TOP-K问题

2025-11-16 02:45:00 2064 43

原创 文件操作入门(下)—— 随机读写、结尾判断、缓冲区及实战题目

本文主要紧接着上一篇讲解,讲解文件的随机读写和文件读取结束的判断,已及文件缓冲区

2025-11-15 17:04:11 1066 26

原创 文件操作入门(上)—— 文件类型及顺序读写基础(含打开关闭)

本文聚焦文件操作核心知识,助读者快速掌握:文件是数据持久化载体,流是数据传输抽象,含`stdin`等3个标准流。核心组件包括`FILE*`文件指针、`fopen`(指定路径与打开方式)和`fclose`(释放资源),路径分绝对与相对两类。重点讲解8个顺序读写函数(字符级`fgetc/fputc`、文本行级`fgets/fputs`、格式化`fscanf/fprintf`、二进制`fread/fwrite`)及代码效果。还明确格式化与不格式化数据的结构、可读性、用途差异,对比`scanf/fscanf/ssc

2025-11-15 00:00:00 851 24

原创 《数据结构二叉树之堆 —— 优先队列与排序的高效实现(2)》

堆的实现和排序

2025-11-14 00:00:00 2555 25

原创 数据结构之初识二叉树(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 919 19

原创 数据结构核心:栈 / 队列互转 + 循环队列,三大必刷题型深度拆解

数据结构核心:栈 / 队列互转 + 循环队列,三大必刷题型深度拆解

2025-11-13 00:00:00 1777 27

原创 栈与队列核心篇(下):从基础到进阶,玩转队列设计

主要讲了队列的介绍和实现

2025-11-12 12:00:00 883 16

原创 栈与队列核心篇(上):从原理到代码,吃透栈结构

主要讲了栈的概念和实现已及相关算法题,希望对大家有所帮助

2025-11-12 00:15:00 1002 27

原创 算法的时间复杂度和空间复杂度

主要讲了复杂度分析和解决

2025-11-04 18:35:43 1228 22

空空如也

空空如也

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

TA关注的人

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