自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】进程信号(一)信号原理、产生方式、调试技巧(含代码示例)

本文详解 Linux 信号的核心逻辑:信号是 OS 用于事件通知的异步机制,进程有默认、忽略、自定义捕捉三种处理行为。深入剖析信号本质(OS 修改 PCB 信号位图)、四大产生方式(键盘、kill、软件条件、硬件异常),并通过代码示例演示 signal、kill、alarm 等系统调用的使用,最后厘清 Core 与 Term 的核心区别及 core dump 调试场景,帮助读者全面掌握 Linux 信号的原理与实践。

2025-11-19 21:43:07 2145 55

原创 【洛谷】滑动窗口专题 实战指南:4 道经典例题吃透核心逻辑

本文通过 “唯一的雪花”“逛画展” 等 4 道经典例题,从基础去重到复杂窗口变形,详解滑动窗口(同向双指针)的优化原理、判断逻辑及代码实现,解决重复元素、最小窗口、环形结构等常见问题,帮助快速掌握 O (n) 复杂度的枚举优化技巧。

2025-11-19 21:34:28 964 18

原创 【洛谷】差分专题 从一维到二维,模板 + 例题彻底吃透

差分是 “空间换时间” 的经典算法,核心是预处理差分数组实现 O (1) 区间增减操作,与前缀和互为逆运算。本文从一维差分模板切入,结合海底高铁、地毯等经典例题,详解一维 / 二维差分的边界处理、变量溢出等关键细节,配套可直接运行代码,帮算法入门者快速掌握差分实战技巧。

2025-11-15 08:33:49 1086 28

原创 【Linux】进程间通信(四)消息队列、信号量与内核管理ipc资源机制

本文详解 System V 标准下三种 IPC 机制:消息队列(小块数据块通信)、信号量(原子计数器实现同步互斥)、共享内存(高效内存共享),介绍其指令 / 代码接口,剖析临界资源与临界区概念,并揭示内核通过 ipc_id_ary 数组统一管理 IPC 资源的底层逻辑。

2025-11-14 09:14:56 1760 37

原创 【Linux】进程间通信(三)System V 共享内存完全指南:原理、系统调用与 C++ 封装实现

共享内存是物理内存中映射到进程地址空间的一块区域,是最快的 System V IPC 通信方式。本文从原理入手,详解 ftok(键值生成)、shmget(创建 / 获取)、shmat(挂接)、shmdt(解挂)、shmctl(控制 / 删除)等核心系统调用,用 C++ 封装共享内存类,实现服务端(创建 / 删除)与客户端(获取)的进程间字符通信。重点说明其 “生命周期随内核” 特性,以及 “无需系统调用、速度最快” 的优势,同时指出其缺乏同步互斥机制的问题及解决思路。

2025-11-11 18:14:06 1114 30

原创 【Linux】进程间通信(二)命名管道(FIFO)实战指南:从指令操作到面向对象封装的进程间通信实现

本文详解命名管道(FIFO)的原理(基于文件 inode,数据不刷盘)、指令创建与数据传输,重点实现客户端 / 服务端进程通信(含 Makefile 多目标编译优化),并通过面向对象封装解耦核心操作,最终总结其用于无关联进程间通信的核心特点。

2025-11-10 21:39:57 1777 50

原创 【洛谷】前缀和专题 一维到二维前缀和模板精讲与实战

本文聚焦前缀和核心思想 ——“预处理优化时间复杂度”,详解一维 / 二维前缀和的实现模板(下标从 1 开始的原因、递推公式),并结合「最大子段和」「二维前缀和查询」「激光炸弹」等实战题目,拆解前缀和在区间和、矩阵价值计算中的应用,适合算法入门者掌握 “空间换时间” 的预处理思维。

2025-11-10 16:48:47 758 12

原创 【洛谷】枚举专题-二进制枚举 从子集到矩阵问题,经典应用与实现

本文通过「子集」「费解的开关」「EvenParity」三道题,循序渐进讲解二进制枚举的原理与位运算技巧,从基础子集枚举到复杂矩阵递推,附完整 C++ 代码与分步思路解析,助力算法入门者掌握枚举类问题解题逻辑。

2025-11-06 18:18:35 1045 43

原创 【Linux】进程间通信(一)匿名管道原理剖析与进程池手动实现全流程

本文深入解析 Linux 进程间通信中匿名管道的概念、底层原理与特性,结合代码示例完整演示基于匿名管道的进程池实现过程,涵盖技术细节、bug 修复与实践技巧,助力开发者掌握 Linux 进程通信与进程池开发。

2025-11-05 16:12:19 1737 55

原创 【洛谷】枚举专题-普通枚举 经典题解之铺地毯、回文日期、扫雷

本文解析洛谷枚举专题中 “铺地毯”“回文日期”“扫雷” 三道经典题目,讲解普通枚举策略的应用要点(枚举对象、顺序、方式),并给出清晰代码实现,帮助读者掌握枚举算法的暴力与优化思路。

2025-10-31 10:59:10 647 18

原创 【Linux】库制作与原理 从生成使用到 ELF 文件与链接原理解析

本文详细讲解 Linux 环境下动静态库的核心概念(静态库.a/.lib、动态库.so/.dll)、生成步骤(静态库用 ar 打包、动态库用 gcc -fPIC -shared)与使用方法(解决库路径依赖的 4 种方案),并深入剖析 ELF 文件结构(ELF Header、节头表、程序头表)及动静态链接原理(静态链接的地址重定位、动态链接的 GOT/PLT 延迟绑定),帮助开发者理解库的底层逻辑与实操要点。

2025-10-29 18:25:28 1115 59

原创 【洛谷】高精度专题 加减乘除全实现

本文详细讲解高精度加减乘除的 C++ 实现思路,结合洛谷 P1601(加法)、P2142(减法)等题目,拆解 “逆序存储”“进位 / 借位处理”“前导零清除” 等核心步骤,修正代码中数组大小、注释等问题,适合新手掌握大整数计算方法。

2025-10-28 10:37:13 813 29

原创 【Linux】Ext系列文件系统 从磁盘结构到文件存储的原理剖析

本文聚焦 Linux Ext 系列文件系统,从磁盘物理、逻辑结构切入,深入解析 “块”、inode、分区管理、路径解析及软硬链接等底层机制,完整呈现文件在磁盘中的存储与访问逻辑。

2025-10-23 19:05:16 1009 62

原创 【洛谷】模拟专题 多项式、蛇形方阵与字符串展开

本文解析多项式输出、蛇形方阵、字符串的展开三个经典编程题,分别通过分类讨论、方向向量法、函数封装等思路解决问题,附完整代码,助力理解编程中的细节处理与逻辑构建。

2025-10-22 10:54:30 788 28

原创 【洛谷】哈希表实战:5 道经典算法题(unordered_map/set 应用 + 避坑指南)

本文针对 5 道哈希表应用的经典算法题(学籍管理、不重复数字、阅读理解、A-B 数对、CitiesandStatesS),提供完整可运行代码及核心思路解析。核心围绕unordered_map(统计次数、键值对应)、unordered_set(高效去重)、set(有序去重)三大容器,解决 “如何避免超时”“处理数据溢出”“保证输出有序”“避免重复计数” 等关键问题。通过实例讲解哈希表在 “增删改查”“多数据关联” 场景下的应用,帮助新手掌握从 “暴力思路” 到 “O (n) 高效思路” 的转化,规避常见编码坑

2025-10-19 15:11:30 1012 31

原创 【Linux】基础IO(二)深入理解“一切皆文件” 与缓冲区机制:从原理到简易 libc 实现

本文系统讲解 Linux “一切皆文件” 的底层原理(struct file与file_operations的核心作用、VFS 抽象层价值),拆解缓冲区的分类(语言级 / 内核级)、刷新策略(行刷新 / 全刷新 / 强制刷新)及实际应用场景,剖析标准错误与输出重定向的语法和差异,并通过手搓简易 libc 库(实现my_fopen/my_fwrite/my_fclose)巩固 IO 流程,适合 Linux IO 入门者理解核心概念。

2025-10-19 15:11:05 1558 49

原创 【Linux】基础IO(一)Linux 文件操作从入门到实践:系统调用、文件描述符、重定向,为自定义Shell添加重定向

本文从 Linux 文件操作底层逻辑出发,梳理 C 库文件接口与系统调用的关联,解析文件描述符分配规则及内核管理机制,详解重定向本质,并通过完整代码实现支持重定向的自定义 Shell(含cd/echo内建命令),帮助读者理解文件管理原理并掌握实践开发。聚焦 Linux 文件操作核心:先厘清 C 接口(fopen等)与系统调用(open等)的关系,再拆解文件描述符与进程的关联逻辑,讲解重定向原理,最后附自定义 Shell 完整实现,助力快速掌握 “原理 + 实践”。

2025-10-16 21:37:37 1677 53

原创 【Linux】进程控制(三) 自定义 Shell 命令行解释器的实现与进程协作实践

本文围绕 Linux 进程概念与控制知识,详细讲解自定义 Shell 命令行解释器的实现过程,涵盖 “构建代码框架、输出命令行提示符、读取 / 解析用户输入、执行普通命令与内建命令(cd、echo 等)、动态更新环境变量” 等核心步骤,帮助读者深入理解 Shell 运行原理、内建命令机制及环境变量 / 本地变量等概念;同时通过 “子进程备份数据” 的示例,展示父子进程分工协作的编程实践,进一步强化对进程 “写时拷贝” 等底层机制的认知。文中结合 C/C++ 混编、系统调用等技术,为 Linux 编程学习者提

2025-10-13 18:38:02 1609 60

原创 【Linux】进程控制(二) 深入理解进程程序替换与 exec 系列函数

本文围绕 Linux 进程控制中的进程程序替换展开,首先介绍程序替换的背景:fork创建子进程后,若子进程需执行全新程序以成为独立进程,便需要程序替换。接着讲解替换原理 —— 通过系统调用加载磁盘上的新程序(代码 + 数据)到进程地址空间,不创建新进程仅替换执行内容;并结合代码示例演示exec系列函数(execl、execv、execlp、execvp、execle、execvpe)的使用,剖析它们的传参规律与差异,帮助读者全面理解 Linux 进程程序替换的原理、接口与应用。

2025-10-12 21:37:53 1337 45

原创 【洛谷】三题搞定 map 与 set 的经典应用

本文围绕 C++ 中 map 和 set 两种核心 STL 容器,通过「英语作文含金量计算」「营业额最小波动统计」「木材仓库进出货管理」三道经典算法题,拆解容器的实战应用逻辑。文中详细分析每道题的核心需求(如字符串匹配、近值查找、边界处理),结合数据范围与隐含条件推导解题思路,同时针对常见问题(如数据溢出、迭代器越界、重复元素处理)给出解决方案,并附上完整可运行代码。适合刚接触 STL 容器的学习者,通过实例掌握 map 的键值映射特性与 set 的有序去重、近值查找能力,提升算法题的解题效率。

2025-10-11 20:17:08 955 51

原创 【洛谷】6 道题吃透堆的应用:模板堆、第 k 小、最小函数值等全攻略

本文围绕 “堆” 这一基础数据结构,精选 6 道经典算法题(含 Luogu P3378 模板堆、牛客网 TopK 问题、序列合并等),每道题均包含文字版题干、核心思路解析、完整参考代码及关键细节注释。内容从堆的基础实现(向上 / 向下调整),到进阶应用(结构体堆、堆与双向链表结合),覆盖小根堆 / 大根堆选择、TopK 问题优化、单调性质利用等高频考点,适合算法新手巩固堆的原理,或备战算法题时查漏补缺。

2025-10-03 14:51:27 980 59

原创 【Linux】进程控制(一) 进程创建、终止与等待概念与实战讲解

本文围绕 Linux 进程控制的核心环节展开,详细解析进程创建(fork函数的工作原理、写时拷贝技术的作用机制,以及fork的常规用法与调用失败场景)、进程终止(进程退出的不同场景、退出码的含义,以及return、exit、_exit的区别与底层行为)、进程等待(进程等待的必要性、wait与waitpid函数的使用方式、status参数的位图解析逻辑,以及阻塞 / 非阻塞等待的实践方案)。通过原理剖析与代码示例结合,帮助读者全面掌握进程生命周期中的关键操作及其底层逻辑。

2025-10-01 23:07:08 2284 54

原创 【洛谷】二叉树专题全解析:概念、存储、遍历与经典真题实战

本文聚焦洛谷平台二叉树相关算法题,从基础到实战系统拆解二叉树知识体系:首先讲解二叉树的核心概念(满二叉树、完全二叉树的定义与特性);接着剖析二叉树的两种存储方式(顺序存储、链式存储的原理与代码实现);再深入二叉树的遍历算法(DFS 前 / 中 / 后序、BFS 层序遍历的递归 / 非递归实现);最后针对洛谷经典二叉树真题(如 “新二叉树”“求先序排列”“美国血统” 等),结合递归划分、序列匹配、路径推导等思路进行逐题解析,帮助读者构建二叉树算法的思维框架与实战能力。

2025-09-29 15:54:45 1326 37

原创 【Linux】进程概念(六):进程地址空间深度解析:虚拟地址与内存管理的奥秘

本文围绕 Linux 进程地址空间展开系统讲解:首先通过 C++ 代码验证内存空间布局,直观展示代码区、数据区、堆区、栈区等的地址特征;接着以父子进程的实验引入虚拟地址概念,揭示 “相同地址却能存储不同数据” 的本质;随后深入阐述进程地址空间的定义,以及虚拟地址与物理内存通过页表建立映射的机制,并结合写时拷贝技术解释父子进程数据独立性的实现;还介绍了mm_struct(内存描述符)、vm_area_struct等内核数据结构在内存管理中的作用;最后从安全性、内存利用率、模块解耦等角度,剖析虚拟地址空间存在的

2025-09-26 21:41:51 3231 62

原创 【Linux】进程概念(五) 命令行参数与环境变量的深度解析

本文围绕 Linux 进程概念展开,首先结合 C 语言代码示例,详细解析进程中命令行参数(argc/argv)的传递逻辑与获取方式;接着系统讲解环境变量:从现象引入环境变量的核心概念,逐步阐述环境变量的修改、本质与查看方法,深入剖析如何通过代码(main函数、单个环境变量获取函数、environ变量)获取环境变量,同时解读环境变量的来源、作用、全局性特征,以及 “本地变量”“内建命令” 等关联知识点,帮助读者透彻理解进程与命令行参数、环境变量的底层关系。

2025-09-23 20:57:02 1714 61

原创 【Linux】进程概念(四):Linux进程优先级与进程调度的核心逻辑

本文作为 Linux 进程概念系列的第四篇,围绕进程优先级与进程调度展开核心知识讲解。首先阐释进程优先级的本质 —— 它是进程获取系统资源的 “先后顺序规则”(区别于 “权限” 的 “能 / 不能”,优先级解决 “进程多、资源少” 场景下的有序分配问题);进而剖析PRI(进程优先级)与NI(nice 值)的关联,以及进程优先级的查看、修改方法;同时还会解读进程的 “竞争、独立” 特性,厘清 “并行” 与 “并发” 的差异,并深入介绍进程切换机制与 Linux 进程调度策略,助力读者系统掌握 Linux 进程

2025-09-21 12:48:08 1677 39

原创 【Linux】进程概念(三):深入剖析操作系统学科的进程状态理论体系与 Linux 系统下的浅度睡眠、深度睡眠、停止、僵尸、死亡等具体进程状态

先通过 “一次性创建 10 个子进程” 的示例代码展开讲解,并明确创建子进程后,父子进程的运行顺序由操作系统(OS)调度原则决定;接着系统阐述 “操作系统学科层面的进程状态(运行、新建、阻塞、挂起等)”,以及Linux 系统特有的进程状态,包括浅度睡眠状态(S)、深度睡眠状态(D)、停止状态(T 和 t)、僵尸状态(Z)、死亡状态(X),同时补充 “孤儿进程” 等相关概念,助力读者深入理解 Linux 环境下进程的状态与行为逻辑。

2025-09-19 14:11:08 1524 40

原创 【洛谷】算法竞赛中的树结构:形式、存储与遍历全解析

本文围绕算法竞赛中的树结构展开,首先介绍树在竞赛场景下的常见形式,区分有序树与无序树的定义及应用特点;接着详细阐述树的存储方法,重点讲解孩子表示法的两种典型实现(vector 数组实现、链式前向星实现);最后深入分析树的遍历算法,包括深度优先遍历(DFS)、宽度优先遍历(BFS),并剖析二者的时空复杂度。通过对树的形式、存储、遍历的系统梳理,助力竞赛选手夯实树结构基础,更高效地解决竞赛中与树相关的问题。

2025-09-19 07:48:00 893 27

原创 【Linux】进程概念(二):进程查看与 fork 初探

通过 proc 目录与 ps 指令查看进程 + fork 函数创建子进程及 task_struct、代码数据关系和返回值解析

2025-09-15 16:28:43 2327 53

原创 【Linux】进程概念(一):从冯诺依曼体系到 PCB 的进程核心解析

从冯诺依曼体系到 PCB 的进程核心解析

2025-09-10 21:04:21 2100 55

原创 【C++详解】C++ 智能指针:使用场景、实现原理与内存泄漏防治

C++ 智能指针:使用场景、实现原理与内存泄漏防治

2025-09-07 18:59:01 1934 45

原创 【洛谷】队列相关经典算法题详解:模板队列、机器翻译、海港

队列相关经典算法题详解:模板队列、机器翻译、海港

2025-09-06 10:13:32 1079 26

原创 【C++详解】异常概念、抛出捕获与处理机制全解析

异常概念、抛出捕获与处理机制全解析

2025-09-04 20:50:51 1215 34

原创 【C++详解】C++11(四) 包装器:function、bind、STL中⼀些变化

包装器:function、bind、STL中⼀些变化

2025-09-04 10:05:49 813 23

原创 【C++详解】C++11(三) 可变参数模板、包扩展、empalce系列接⼝、新的类功能

可变参数模板、包扩展、empalce系列接⼝、新的类功能

2025-09-02 21:34:58 1036 22

原创 【洛谷】【模板】栈、有效的括号、验证栈序列、后缀表达式、括号序列(stack相关算法题)

【模板】栈、有效的括号、验证栈序列、后缀表达式、(stack相关算法题)

2025-09-01 21:21:14 827 27

原创 【C++详解】C++11(二) lambda表达式、类型分类、引⽤折叠、完美转发

lambda表达式、类型分类、引⽤折叠、完美转发

2025-08-31 20:51:27 1382 31

原创 【C++详解】C++11(一) 列表初始化、右值引⽤和移动语义

列表初始化、右值引⽤和移动语义

2025-08-29 21:30:20 1290 36

原创 【C++详解】用哈希表封装实现myunordered_map和 myunordered_set

用哈希表封装实现myunordered_map和 myunordered_set

2025-08-28 10:11:41 1370 34

原创 【洛谷】六个重要排序算法代码实现,时间复杂度和稳定性分析

六个重要排序算法代码实现,时间复杂度和稳定性分析

2025-08-27 10:47:44 1168 23

空空如也

空空如也

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

TA关注的人

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