<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[加油！！！]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_72505850</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_72505850]]></copyright><item><title><![CDATA[Linux文件系统【Linux】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/169832901</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/169832901</guid><author>qq_72505850</author><pubDate>Mon, 02 Nov 2026 20:10:22 +0800</pubDate><description><![CDATA[本文系统解析Linux文件描述符、文件系统结构、软硬链接及静态/动态库机制。从fd原理与重定向，到EXT2文件系统层级（磁盘→分区→BlockGroup→InodeTable），揭示文件名与inode的分离存储；对比软链接（符号链接）与硬链接的本质差异；最后剖析静态库（.a）编译期嵌入与动态库（.so）运行时共享的特性，涵盖创建、使用与部署场景，为系统理解与开发实践提供完整技术图谱。]]></description><category></category></item><item><title><![CDATA[Shell简单实现【Linux】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/167270212</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/167270212</guid><author>qq_72505850</author><pubDate>Fri, 09 Oct 2026 17:34:59 +0800</pubDate><description><![CDATA[本文实现了一个简易Shell，支持命令行输入、解析、子进程创建与执行。通过getenv()获取用户名、主机名和当前路径，使用snprintf生成提示符。利用fgets读取命令行，strtok分割命令参数，fork创建子进程，execvp执行外部命令，waitpid等待进程结束。特别处理内建命令cd和echo $?，通过chdir切换目录并更新PWD环境变量，确保提示符路径同步变化。最终实现一个可循环运行、支持基本命令与路径更新的简易命令行解释器。]]></description><category></category></item><item><title><![CDATA[进程替换【Linux】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/167176819</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/167176819</guid><author>qq_72505850</author><pubDate>Wed, 07 Oct 2026 20:43:55 +0800</pubDate><description><![CDATA[本文介绍了进程替换的现象与原理，阐述了通过fork创建子进程并使用exec系列函数实现进程替换的过程。重点说明exec函数不创建新进程，仅替换当前进程的代码和数据，执行新程序。对比了execl、execv、execvp、execle等函数的参数形式与功能差异，强调路径查找、参数传递及环境变量管理机制。结合实例演示了进程替换成功与失败场景，指出替换成功后后续代码不再执行，否则为替换失败。]]></description><category></category></item><item><title><![CDATA[小白深度学习基础【AI】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/166646973</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/166646973</guid><author>qq_72505850</author><pubDate>Sat, 26 Sep 2026 11:28:18 +0800</pubDate><description><![CDATA[深度学习是机器学习的分支，通过多层神经网络自动从原始数据中逐层提取高层次特征，实现图像识别、语音处理、自然语言理解等任务。相比传统机器学习依赖人工特征工程，深度学习具备端到端学习能力，能高效处理复杂数据，但需大量标注数据与强大算力。其核心优势在于自动特征学习与多模态融合，推动了大模型在视觉、语言、语音等领域的统一应用。]]></description><category></category></item><item><title><![CDATA[小白入门机器学习基础【AI】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/165213079</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/165213079</guid><author>qq_72505850</author><pubDate>Fri, 25 Sep 2026 22:38:19 +0800</pubDate><description><![CDATA[本文系统介绍了机器学习的核心概念及其分类。按反馈信号分为监督、无监督、半监督、自监督和强化学习；按任务类型分为分类、回归、聚类、关联规则与序列预测。监督学习依赖标签，无监督学习挖掘数据内在结构，半监督与自监督降低标注成本，强化学习通过奖励机制优化决策。各类任务在实际应用中广泛用于图像识别、预测分析、客户分群、推荐系统及自然语言处理等领域。]]></description><category></category></item><item><title><![CDATA[继承【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/156485599</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/156485599</guid><author>qq_72505850</author><pubDate>Sun, 20 Sep 2026 21:49:03 +0800</pubDate><description><![CDATA[继承是C++实现代码复用的重要机制，支持类层次结构的扩展与灵活性。通过公有继承，派生类可复用基类成员，但私有成员不可直接访问，需通过公有接口间接调用。继承支持对象赋值兼容（切片），且派生类默认成员函数会自动调用基类构造与析构。静态成员在继承中共享，可用于统计实例数量。多继承易引发菱形继承问题，导致数据冗余与二义性，可通过虚继承解决。实践中应优先使用组合（has-a）而非多继承，避免复杂性。]]></description><category></category></item><item><title><![CDATA[Linux进程【Linux】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/164970821</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/164970821</guid><author>qq_72505850</author><pubDate>Fri, 18 Sep 2026 15:59:55 +0800</pubDate><description><![CDATA[本文系统阐述了Linux进程管理的核心机制：进程由PCB（task_struct）描述，包含唯一PID、代码数据及状态信息。通过fork()创建子进程，实现代码共享与数据独立，借助写时拷贝优化内存使用。进程状态涵盖运行（R）、阻塞（S/D）、挂起、僵尸（Z）等，需通过kill信号控制。进程调度采用O(1)算法，基于活跃/过期队列与位图实现高效调度，后演进为更公平的CFS及可扩展的BPF调度器。同时介绍了命令行参数、环境变量（如PATH）的传递与管理，以及进程地址空间的虚拟化与保护机制，全面揭示了进程的生命周]]></description><category></category></item><item><title><![CDATA[Leetcode: 1089. 复写零]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/165315929</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/165315929</guid><author>qq_72505850</author><pubDate>Mon, 14 Sep 2026 16:53:11 +0800</pubDate><description><![CDATA[题目要求就地复写数组中的零，使用逆向双指针法：先正向遍历确定最后一个复写位置，处理边界情况后，从后往前复写元素。若遇零则复写两个零，否则复制原值。时间复杂度O(n)，空间复杂度O(1)。]]></description><category></category></item><item><title><![CDATA[Leetcode: 283. 移动零]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/165239823</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/165239823</guid><author>qq_72505850</author><pubDate>Sun, 13 Sep 2026 20:09:13 +0800</pubDate><description><![CDATA[题目要求将数组中的所有0移动到末尾，同时保持非零元素的相对顺序。使用双指针法：cur遍历数组，dest指向最后一个非零元素位置。遇到非零数时，将其与dest+1位置交换，并推进dest；遇到0则跳过。一趟遍历即可完成，时间复杂度O(n)，空间复杂度O(1)。]]></description><category></category></item><item><title><![CDATA[Linux基础工具使用【Linux】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/164024740</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/164024740</guid><author>qq_72505850</author><pubDate>Wed, 09 Sep 2026 15:09:23 +0800</pubDate><description><![CDATA[本文系统介绍了Linux下软件安装的三种方式（源码、RPM包、包管理器），重点推荐包管理器。详细讲解了Vim编辑器的命令模式、插入模式与底行模式操作，涵盖文本编辑、注释、分屏等实用功能。接着阐述GCC编译流程：预处理、编译、汇编、链接，并引入Makefile实现自动化构建。随后通过进度条实例演示缓冲区刷新与fflush的应用，展示彩色美化与多文件场景下的进度条实现。最后介绍GDB调试工具的使用，包括断点设置、单步执行、变量监视及栈帧查看等核心调试技巧，全面覆盖Linux开发基础技能。]]></description><category></category></item><item><title><![CDATA[map和set【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/158351217</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/158351217</guid><author>qq_72505850</author><pubDate>Thu, 16 Jul 2026 19:18:39 +0800</pubDate><description><![CDATA[本文摘要： C++标准库中的关联式容器set和map基于红黑树实现，具有自动排序特性。set存储唯一元素，map存储键值对，两者插入、删除、查找时间复杂度均为O(logn)。set元素不可修改，map的value可改但key不可变。使用时需注意迭代器失效问题，删除元素后原迭代器会失效。map通过[]运算符可实现键值访问/插入，set/map支持自定义排序规则。底层实现上，set和map共用红黑树模板，通过仿函数区分键值比较逻辑。迭代器采用中序遍历方式实现，支持双向移动但不支持随机访问。]]></description><category></category></item><item><title><![CDATA[Leetcode: 347. 前 K 个高频元素 和 Leetcode: 692. 前K个高频单词]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/162672953</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/162672953</guid><author>qq_72505850</author><pubDate>Tue, 07 Jul 2026 21:11:58 +0800</pubDate><description><![CDATA[本文介绍了LeetCode两道前K高频元素问题的解法。347题要求返回整数数组中出现频率前K高的元素，通过map统计频次、存入vector排序后取前K项实现。692题扩展至单词列表，需处理频率相同按字典序排序的情况，核心思路相似但比较函数需额外处理字典序，可通过自定义比较函数或仿函数实现。两题均采用&quot;统计-排序-取前K&quot;的通用解法，时间复杂度主要由排序步骤决定，为O(N log N)。改进方案展示了使用仿函数替代静态比较函数的写法。]]></description><category></category></item><item><title><![CDATA[红黑树【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/160692247</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/160692247</guid><author>qq_72505850</author><pubDate>Thu, 02 Jul 2026 21:06:57 +0800</pubDate><description><![CDATA[红黑树是一种二叉搜索树，但在每个结点上增加一个存储位表示结点的颜色，可以是Red或Black，通过对任何一条从根到叶子的路径上各个结点着色方式的限制，红黑树确保没有一条路径会比其他路径长出两倍，因而接近平衡的。]]></description><category></category></item><item><title><![CDATA[AVL树【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/162177150</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/162177150</guid><author>qq_72505850</author><pubDate>Tue, 30 Jun 2026 19:31:43 +0800</pubDate><description><![CDATA[AVL树是一种自平衡二叉搜索树，通过旋转操作保持左右子树高度差不超过1。文章详细介绍了AVL树的插入操作和平衡因子更新流程，重点分析了四种旋转场景：右单旋、左单旋、右左双旋和左右双旋。针对每种不平衡情况，文章提供了具体的旋转方法和平衡因子更新规则，并给出了完整的C++实现代码，包括节点插入、平衡判断和旋转操作等核心功能。通过维护严格的平衡性，AVL树确保了O(log n)的查找效率，避免了普通二叉搜索树可能出现的退化问题。]]></description><category></category></item><item><title><![CDATA[二叉搜索树【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/157326023</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/157326023</guid><author>qq_72505850</author><pubDate>Tue, 23 Jun 2026 20:38:23 +0800</pubDate><description><![CDATA[本文介绍了二叉搜索树（BST）的基本概念和操作实现。二叉搜索树是一种特殊的二叉树，满足左子树节点值小于根节点、右子树节点值大于根节点的性质。文章详细讲解了BST的插入、查找和删除操作：插入时需要找到合适位置并维护父子节点关系；查找通过比较键值进行；删除操作分为三种情况（无子节点、单子节点、双子节点），其中双子节点情况采用替换法处理。文中提供了C++实现代码，并特别强调了删除操作中处理替换节点时的注意事项。BST的平均时间复杂度为O(logN)，是一种高效的数据结构。]]></description><category></category></item><item><title><![CDATA[Git的原理与使用]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/160694664</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/160694664</guid><author>qq_72505850</author><pubDate>Tue, 09 Jun 2026 14:49:15 +0800</pubDate><description><![CDATA[本文详细介绍了Git版本控制系统的安装、基本操作及高级功能。主要内容包括：1. Git安装与初始化（Ubuntu环境）；2. 基本操作：配置用户信息、文件提交、版本查看与状态检查；3. 版本回退与修改撤销的多种方法；4. 分支管理：创建/切换/合并分支及解决冲突；5. 远程仓库操作：克隆/推送/拉取及忽略文件配置；6. 标签管理：创建/删除本地和远程标签。文章通过具体命令示例和操作流程，全面讲解了Git的核心功能和使用技巧，适合开发者系统学习Git版本控制工具。]]></description><category></category></item><item><title><![CDATA[list模拟实现(简单版)【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/150548310</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/150548310</guid><author>qq_72505850</author><pubDate>Sat, 04 Oct 2025 11:36:56 +0800</pubDate><description><![CDATA[本文介绍了C++中list的模拟实现，重点讲解了其底层数据结构、迭代器设计及常用操作。主要内容包括：1. list底层采用带头双向循环链表结构，通过节点类模板实现数据存储；2. 详细设计了ListIterator迭代器类，重载++、--、*;等运算符实现遍历功能；3. 实现了push_back、insert、erase等核心操作，并处理迭代器失效问题；4. 采用模板参数复用代码实现const迭代器；5. 完善了构造函数、拷贝构造、赋值运算符和析构函数等特殊成员函数。文章通过具体代码示例演示了各功能]]></description><category></category></item><item><title><![CDATA[小白学习《PCI Express体系结构导读》——第Ⅰ篇第1章PCI总线的基本知识]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/148514844</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/148514844</guid><author>qq_72505850</author><pubDate>Sat, 16 Aug 2025 22:30:43 +0800</pubDate><description><![CDATA[本文摘要主要介绍了PCI总线的基本知识。PCI总线作为处理器系统的局部总线，主要用于连接外部设备，具有地址空间隔离、可扩展性强、动态配置机制、高带宽、共享总线机制和中断机制等特点。PCI总线通过HOST主桥与处理器隔离，支持即插即用功能，最大可挂接256个设备，并采用总线仲裁机制实现共享带宽。文章还对比了PCI总线与其他总线的性能差异，强调PCI总线在现代计算机系统中的重要地位及其对PCIe总线的影响。]]></description><category></category></item><item><title><![CDATA[vector的增删改查模拟实现(简单版)【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/149685548</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/149685548</guid><author>qq_72505850</author><pubDate>Thu, 31 Jul 2025 18:40:47 +0800</pubDate><description><![CDATA[vector的增删改查模拟实现(简单版)【C++】]]></description><category></category></item><item><title><![CDATA[string的增删改查模拟实现(简单版)【C++】]]></title><link>https://blog.youkuaiyun.com/qq_72505850/article/details/149403005</link><guid>https://blog.youkuaiyun.com/qq_72505850/article/details/149403005</guid><author>qq_72505850</author><pubDate>Sat, 19 Jul 2025 18:45:20 +0800</pubDate><description><![CDATA[string的增删改查模拟实现(简单版)【C++】]]></description><category></category></item></channel></rss>