- 博客(65)
- 收藏
- 关注
原创 『Linux升级路』解析环境变量
本文主要介绍了Linux系统中的进程优先级、进程切换、命令行参数和环境变量等核心概念。首先阐述了进程优先级的基本概念和重要性,解释了PRI和NI值的含义及修改方法。其次分析了进程切换的过程和原理,包括CPU上下文切换的机制。然后讲解了命令行参数的作用和用法,以及如何通过参数实现不同功能。最后详细介绍了环境变量的概念、常见类型(如PATH、HOME)及相关操作命令,并说明了获取环境变量的方法。文章旨在帮助读者深入理解Linux系统进程管理和环境配置的核心知识。
2025-11-06 09:01:02
609
1
原创 『Linux升级路』探索进程状态
本文系统介绍了Linux操作系统中的进程状态管理。首先阐述了进程状态的三种基本概念:运行状态(CPU调度执行)、阻塞状态(等待I/O或资源)和挂起状态(内存不足时进程数据暂存磁盘)。随后详细解析Linux内核源码中定义的具体进程状态:R运行状态、S睡眠状态、D不可中断磁盘休眠状态、T停止状态等,并通过代码实例演示进程状态转换。重点探讨了僵尸进程(Z状态)的危害——会导致内存泄漏,以及孤儿进程(被init进程领养)的特性。文章通过理论结合实践的讲解方式,深入浅出地剖析了Linux进程管理的核心机制,对理解操作
2025-11-03 14:54:12
723
1
原创 『C++成长记』会旋转的二叉搜索树——AVLTree
AVL树是一种高度平衡的二叉搜索树,通过平衡因子(左右子树高度差不超过1)确保高效查找(O(log n))。其核心操作包括插入时的平衡调整和四种旋转(左旋、右旋、左右旋、右左旋)以维持平衡。插入时需更新平衡因子,若失衡则通过旋转恢复。AVL树适合静态数据,频繁修改会导致性能下降。验证时需检查二叉搜索树性质和平衡因子是否正确。
2025-10-07 13:17:31
792
原创 『C++成长记』一颗会搜索的二叉树
本文介绍了二叉搜索树(BST)的概念、操作和实现。BST是一种高效的数据结构,具有左小右大的特性,支持查找、插入和删除操作。文章详细讲解了BST的查找、插入和删除算法,特别是删除时如何处理0-1个孩子和2个孩子的情况。通过C++代码实现了BST的结点类和树类,包括插入、查找、中序遍历、删除、析构和拷贝构造等功能。此外,还介绍了BST的两种应用模型:K模型(单键)和KV模型(键值对)。最后分析了BST的性能,最优情况下时间复杂度为O(logN),最差情况下退化为O(N)。文章为理解和实现二叉搜索树提供了全面指
2025-10-04 09:28:14
929
原创 『C++成长记』多态
本文深入探讨了C++多态机制的核心概念与实现原理。主要内容包括:1)多态的定义与构成条件,需通过基类指针/引用调用虚函数,且派生类必须重写虚函数;2)虚函数重写规则及协变、析构函数重写等例外情况;3)C++11引入的override和final关键字;4)抽象类与纯虚函数的接口继承特性;5)多态底层原理,通过虚函数表实现动态绑定,分析虚表结构及存储位置
2025-10-01 10:10:05
808
原创 『C++成长记』继承
本文系统介绍了C++继承机制的核心概念和应用。主要内容包括:1)继承的基本概念和定义方式,重点分析了不同继承方式下成员访问权限的变化;2)基类与派生类对象间的赋值转换规则(切片原则);3)继承体系中的作用域问题及同名成员隐藏现象;4)派生类默认成员函数(构造/拷贝构造/赋值重载/析构)的实现要点;5)菱形继承问题及虚拟继承解决方案;6)继承与组合的适用场景对比,强调优先使用组合原则。文章通过丰富代码示例,详细阐释了继承机制的使用规范,为面向对象程序设计中的代码复用提供了实践指导。
2025-09-24 09:55:08
893
原创 『优选算法』拒绝摆烂!算法练习
本文介绍了五种经典的双指针算法应用场景:1. 移动零:通过双指针划分数组区间,将非零元素前移;2. 复写零:从右向左处理,避免数据覆盖;3. 盛水容器:利用单调性,移动较小边界指针;4. 有效三角形:排序后固定最长边,对撞指针判断;5. 三数之和:固定一个数,双指针查找两数之和,注意去重。每种算法都提供了清晰的原理说明和代码实现,展示了双指针在不同问题中的灵活应用。
2025-09-12 10:47:20
808
原创 『C++成长记』vector模拟实现
本文深入探讨了C++ STL中vector容器的底层实现原理,通过模拟实现vector的各种接口来剖析其工作机制。
2025-09-01 21:01:50
580
15
原创 『Linux升级路』基础开发工具——gdb篇
在软件开发中,通常会有两种主要的构建配置:Debug(调试)和Release(发布)。这两种配置的存在是为了在不同的开发和使用阶段提供不同的优化和调试支持。
2023-12-22 09:02:36
7294
170
原创 『C++成长记』拷贝构造函数
自定义类型在传参的时候,形参最好用引用来接收,这样可以避免调用拷贝构造函数,尤其是深拷贝的时候,会大大的提高效率,函数返回时,如果返回的对象在函数栈帧销毁后还在,最好也用引用返回。通过上面的分析可以看出,简单的浅拷贝不能满足栈的需求,因此,对于栈,我们需要自己写一个拷贝构造函数,来实现深拷贝。用于基于同一类的其他对象的构建及初始化,也就是是创建对象的时候,用一个已存在的对象,去初始化待创建的对象。问题就在于,我们传参时没有使用引用,上面代码传参使用的是值传递,值传递形参是实参的一份临时拷贝,
2023-12-13 10:04:53
3040
175
原创 『Linux升级路』基础开发工具——make/Makefile篇
以前我们的代码中有多个源文件,是编译器把它们链接起来,形成可执行程序。而在linux中,需要我们手动进行这个过程,使用gcc一个一个源文件的编译十分繁琐,这就需要我们的自动化构建工具——make/Makefile。
2023-11-27 08:58:50
1906
166
原创 『Linux升级路』基础开发工具——gcc/g++篇
在前面的文章中我们学会了vim的用法,可以写一些代码,要想让我们的代码运行起来,还需要我们学会编译工具gcc、g++的使用。
2023-11-24 09:02:16
2067
174
原创 『C++成长记』类和对象
C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。比如: 之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C++方式实现, 会发现struct中也可以定义函数。
2023-11-21 12:46:38
1465
184
原创 『C++成长记』C++入门——内联函数
普通的函数在调用的时候会开辟函数栈帧,会产生一定量的消耗,在C语言中可以用宏函数来解决这个问题,但是宏存在以下缺陷:复杂、容易出错、可读性差、不能调试。为此,C++中引入了内联函数这种方法
2023-11-16 08:50:47
1695
197
原创 『Linux升级路』基础开发工具——vim篇
本期给大家介绍的工具是vim,它是多模式编辑器,vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
2023-11-11 09:22:23
2746
194
原创 『Linux升级路』基础开发工具——yum篇
在Windows环境下,我们通常会到官网,去下载安装包进行软件的安装,在手机端,我们会到应用商店去下载我们需要的软件。今天我们将学习如何在Linux环境中安装软件。
2023-11-02 13:27:42
1746
156
原创 『C++成长记』C++入门—— 函数重载&引用
在上期的学习中,我们学习了命名空间和缺省参数,对C++有了初步的认识,本期我们将会学习函数重载和引用等新的概念。
2023-10-28 11:31:06
1446
188
原创 『Linux升级路』权限管理
权限决定了一个人可以干什么和不可以干什么,它是一种限制,在日生活中大家也都受到过权限的约束,今天就让我们认识Linux中的权限管理。
2023-10-24 16:38:48
2092
174
原创 『C++成长记』C++入门——命名空间&缺省参数
C++是在C语言的基础上发展而来的,C++优化了C语言的很多问题,让使用者使用起来更加方便,从今天开始我们将进入C++的学习,学习C++的奇妙之处。
2023-10-19 12:34:14
2182
166
原创 『Linux升级路』基本指令
我们了解了操作系统,也对Linux有了基本的认识,从今天开始就会进入Linux的学习,本期我们将学习Linux的基本指令。
2023-10-16 12:34:05
3420
167
原创 【数据结构】排序之插入排序和选择排序
排序是我们数据结构学习中很重要的章节,我们在生活中买东西都会挑选更好的,点外卖会选评分高的等等,这些都需要用到排序。接下来我们将会学习常见的排序算法。
2023-10-02 10:50:58
3874
194
原创 【数据结构】二叉树之堆的实现
在上一期的文章中我们学习了一些二叉树的知识,也了解了堆的概念。堆是一颗完全二叉树,分为大堆和小堆,今天我们将实现堆的各种功能。
2023-09-23 10:53:17
1412
246
原创 【数据结构】二叉树
在前几期的学习中,我们认识了顺序表和链表这两种线性表,而在本期学习中,我们将会学习复杂的数据结构二叉树。跟随我们的脚步,看看二叉树有怎样的特点。
2023-09-15 13:24:52
4473
196
原创 拒绝摆烂!C语言练习打卡第七天
在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习
2023-08-31 09:21:01
1671
207
原创 拒绝摆烂!C语言练习打卡第六天
在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习。
2023-08-26 09:45:51
2201
175
原创 拒绝摆烂!C语言练习打卡第五天
在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习。
2023-08-22 09:18:54
2641
215
原创 拒绝摆烂!C语言练习打卡第四天
在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习。
2023-08-20 09:33:24
3374
138
原创 拒绝摆烂!C语言练习打卡第三天
在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习。
2023-08-18 09:13:02
1397
198
原创 拒绝摆烂!C语言练习打卡第二天
在前面我们学习完C语言的所以知识,当然练习巩固也不能落下,接下来就让小王带着大家进行练习,巩固我们C语言的学习。
2023-08-16 08:52:46
1544
200
原创 拒绝摆烂!C语言练习打卡第一天
在前面我们学习完C语言的所以知识,当然练习巩固也不能落下,接下来就让小王带着大家进行练习,巩固我们C语言的学习。
2023-08-14 08:36:51
4069
196
原创 【数据结构】栈和队列
在前几期的学习中,我们认识了顺序表和链表这两种线性表,而在本期学习中,我们将会认识别的线性表。跟随我们的脚本,看看栈和队列有怎样的特点。
2023-08-12 09:00:08
2270
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅