自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】进程基础入门指南(上)

我们通过一个校长的例子,也知道为什么要有进程:因为操作系统要管理。而管通的本质是对数据的管理,通过将对进程的管理转换成了对PCB(task_struct)的增删查改。知道了操作系统是如何管理的?先描述再组织。并且操作系统中一定有大量的数据结构。我们后面就要描述比如进程,内存,文件等...的属性,操作系统存在的意义就是为了给用户提供一个稳定的,安全的,可靠的运行环境。等等,这样一套体系结构,之后我们就开始描述进程的属性,再用数据结构组织起来!

2025-04-08 16:02:21 652

原创 【Linux】冯·诺依曼体系结构

我们带着这三个问题,冯诺依曼体系结构是什么?为什么要有冯诺依曼体系结构?冯诺依曼体系结构给我们带来了什么?冯诺依曼体系结构如上图,由5大部分组成。我们把运算器和控制器粗略归纳为中央处理器。一一介绍这5大结构:输入结构:包括键盘,话筒,摄像头,磁盘,网卡,音频...存储器:注意这里的存储器就指的是内存!!!CPU运算器:逻辑运算,算数运算。

2025-04-04 19:46:38 790

原创 【算法】蓝桥杯常见输入输出tips(关键时刻能救急)

马上蓝桥杯了,这里小编想分享一些我认为比较有用的输入输出技巧。说是技巧吧,其实也是小编在这里发个牢骚。还请大佬们多多见谅!小编平时都是在leetcode刷题,之前在学习c语言时,还经常会自已处理输入输出。但是,渐渐以为自已的水平高了,大部分时间都是在提升自已的专业技能,平时就忽略了acm核心代码模式,所以就忽略了对输入输出的关注。导致自已总是把acm输入输出搞得稀里糊涂的,很麻烦。对于一些基本的概念都给弄错了。导致,一道题,没卡在算法上,输入先搞不定。

2025-03-31 10:09:20 734 1

原创 【Linux】cgdb调试技巧全知道

一篇关于cgdb的宝藏岛

2025-03-26 09:30:00 664

原创 【Linux】Makefile秘籍

一个可执行程序的生成通常需要经过预处理、编译、汇编和链接四个主要阶段。在 Linux 中,对于简单的单文件项目,我们常常可以直接使用 gcc code.c -o code一步到位地生成可执行程序,然而,如果我们反复执行这条命令,依旧会编译,这就极大的浪费了时间和空间。对于大型项目,情况就复杂得多。大型项目通常包含多个.c文件、头文件以及其他资源文件。在这种情况下,手动管理这些文件的编译和链接过程不仅繁琐,而且容易出错。为了简化大型项目的构建过程,Linux 引入了make工具。make。

2025-03-18 14:10:48 1195

原创 【C++】模版进阶全知道

我们知道,函数模版是泛型编程的一种思想, 通过函数模版,我们无需再重复实现一些逻辑相似的代码,而是通过函数模版进行复用,通过实例化出不同的类,达到对应的目的。而有些场景对于一些复杂的类型,比如指针,引用等,贸然使用函数模版,可能达不到我们想要的效果,就比如,函数模版就像一个通用的"工具箱",里面有各种工具(通用模板)。但是当你需要处理一个特殊的任务(比如打印字符串时加上引号),你专门准备了一个定制化的工具,这个工具只针对这个特殊任务,效果更好。这就是我们将学习的类特化。

2025-03-10 19:37:54 697 2

原创 【Linux】Linux Progress Pulse-进度条

我们将使用LInux中基础指令,使用工具vim编写一个进度条程序。通过自已编写的Makefile,使用指令make形成可执行程序,使用指令make clean清理文件进度条效果演示:进度条效果演示。

2025-03-09 15:49:58 854 3

原创 【C++】优先级队列宝藏岛

🌈 在上一节,我们通过适配器模式,实现了一种高效、灵活且易于扩展的方式来实现栈和队列,通过适配器转换出我们想要的类,让原本互不相容的两个接口能够协同工作。本篇文章将继续采用适配器这种设计方式,带你认识优先级队列的使用场景,完成优先级队列(priority_queue)的实现。🌻如果你还不了解适配器,可以看这一节:stack和queue的适配器模式堆-上和堆-下priority_queue的介绍:🔍使用场景优先级队列在我们日常生活中也有很多使用场景,比如在医院的急诊室。

2025-02-20 16:32:42 795 2

原创 【C++】stack 和 queue 的适配器模式与实现

在C语言中,不管是实现一个栈还是实现队列,我们都需要从底层开始造轮子😩;在C++中,我们一直强调不暴露底层结构,讲究提供一组特定的接口,来隐藏容器的底层实现细节,从而实现特定的数据结构行为。我们能否提供一种高效、灵活且易于扩展的方式来实现栈和队列,同时也保持了代码的简洁性和可维护性的方式😜?⌛️通过适配器模式,C++ STL提供了一种高效、灵活且易于扩展的方式来实现栈和队列,同时也保持了代码的简洁性和可维护性。让底层隐藏实现细节,只暴露特定的接口。通过适配器,支持我们可以自定义容器。

2025-02-17 17:21:06 1418 1

原创 【C++】 <vector> VS <list>

🍃 本系列为初阶C++的内容,如果感兴趣,欢迎订阅🚩。看完小伙伴们能区分它们的使用场景了嘛❓。> 🎊个人主页:[小编的个人主页])

2025-02-09 11:26:12 200 1

原创 【C++】解锁<list>的正确姿势

👐在之前的容器<string>,<vector>中,我们遇到的底层物理空间都是连续的,在list中,由于底层物理空间不连续,但是逻辑上是连续的,此时底层是如何实现的呢❓迭代器的行为又是什么样呢❓小编这篇文章👇带你从0认识并掌握使用list并了解list的底层结构。通过<list>的认识以及模拟实现,加深了我们对迭代器的认识,迭代器支持++.--,比较,解引用,随机访问等等操作,我们知道了迭代器行为是像指针一样的东西,迭代器提供了一种统一的方式来访问容器中的元素,而。

2025-02-09 10:59:21 1176 1

原创 【C++】深度剖析vector-带你认识vector的底层结构(万字血书)

string是C++标准模板库(STL)中用于表示字符串的类,在之前我们模拟实现string类,认识到了迭代器的使用,容器的便捷性。vector是C++标准模板库(STL)中的一种序列容器,它类似于动态数组在vector中,我们将进一步感受模版的魅力。STL六大组件有容器,迭代器,算法,适配器,仿函数,空间适配器,后续我们将一一解开面纱。vector作为一种动态数组的序列容器,让我们以后使用数组更方便也更安全。迭代器的实现和string大同小异,在下一篇文章list中,我们在感受迭代器的魅力。

2025-02-04 10:26:25 972 1

原创 【C++】这才是string类的正确打开方式-带你认识string的底层结构(万字血书)

🔵我们之前C语言使用的字符串函数,不管是项目开发还是维护性。都存在不足,不太符合OOP的思想,甚至对于边界检查,缓冲区溢出问题,以及对于对Unicode支持不足😔。在C++STL标注模版库中,提供了string类的容器,让我们避免重复”造轮子,直接使用😄。本篇文章将模拟实现string类,让你进一步理解string类以及能够更好地使用。🔵通过string类的模拟实现,我们可以感受到复用的魅力所在,以及容器的强大之处,有了像string类这样的容器,对应遇到字符串,

2025-01-30 18:00:00 1070 1

原创 【C++】模版初阶-带你快速学会模版

⭐️在学习模版之前,我们可能经常会实现一些重复的代码,这是我们不愿意看见的,我们更想要复用。这一节,我们将对模版进行初步认识,简化我们的代码量的同时,提高开发效率。

2025-01-26 10:02:52 684 1

原创 【C++】内存管理

⭐️在计算机中,一个内存会被分为很多区域,如:代码区,内核空间,栈,数据段,堆,内存映射区等。如图:这就要求我们程序员能够合理的管理和使用内存。比如动态开辟空间和合理释放空间,在这一节,小编将分享C++对于内存管理的知识。

2024-12-05 11:28:29 789 3

原创 [C++] 类和对象-下

在之前,我们分享了C++6个的默认成员函数,🚩🚩这对于我们之后的学习很重要,在这一节我们将继续探讨构造函数的细节😄,以及初始化列表,static修饰的成员变量和成员函数,以及友元,内部类等。

2024-11-25 09:57:19 997 8

原创 【C++】类和对象-深度剖析默认成员函数-下

在上一节,我们分享了C++默认成员函数的前3个,构造函数,析构函数,和拷贝构造函数。如果还有疑惑的可以浏览我的上一篇文章默认成员函数-上。

2024-11-21 10:42:38 2270 8

原创 【C++】类和对象-深度剖析默认成员函数-上

🍃 本系列为初阶C++的内容,如果感兴趣,欢迎订阅🚩> 🎊个人主页:[小编的个人主页])

2024-11-17 17:21:44 1204 12

原创 【C++】类和对象-上

🌟C语言是一门面向过程的语言,在C语言中,我们用结构体来定义复合数据类型的结构。C++在设计中保留了结构体(struct)类型的优点,C++引入了类,类已经包括了结构体类型的所有功能,并且功能更强,更符合面向对象程序设计的要求,并且安全性,规范性,对象的可交互性也更高。在之后的学习中我们会更深有体会。🌟我们通过Dateclass Datepublic:_day = day;

2024-11-14 09:50:53 1269 7

原创 [C++]内联函数和nullptr

🍃 本系列为初阶C++的内容,如果感兴趣,欢迎订阅🚩> 🎊个人主页:[小编的个人主页])

2024-11-12 16:35:18 1007 4

原创 【C++】新手入门指南

🍃 本系列为初阶C++的内容,如果感兴趣,欢迎订阅🚩> 🎊个人主页:[小编的个人主页])目录。

2024-11-10 17:34:58 2351 6

原创 【手撕排序4】计数排序+快速排序(非递归)

🌟在上一节我们实现了归并排序,感受到了归并排序的魅力,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>归并排序这节小编主要分享计数排序和快速排序的非递归版本。

2024-11-09 20:54:58 926 6

原创 【手撕排序3】归并排序

🌟在上一节我们实现了快速排序,感受到了快速排序的魅力,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>快速排序,这节小编将带领大家感受归并排序的美学。

2024-11-08 21:38:37 337 4

原创 【手撕排序2】快速排序

🌟在上一节我们实现了希尔排序,感受到了插入排序的魅力,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>希尔排序,这节小编将带领大家感受交换排序的美学。

2024-11-07 10:56:44 924 4

原创 【手撕排序1】希尔排序(直接插入排序)

🌟在上一节我们实现了链式二叉树,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>二叉树,从这节开始小编带大家实现常见的排序算法。

2024-11-06 09:30:04 538 2

原创 【数据结构】树-二叉树(链式)

🌟在上一节我们实现了二叉树的堆排序,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>堆排序,这一节小编给大家介绍二叉树的链式结构。

2024-11-04 12:24:12 1058 6

原创 【排序算法】堆排序

🌟在上一节我们实现堆,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>堆,这一节小编给大家介绍基于堆思想的堆排序以及著名的Top-k问题。

2024-11-02 12:28:04 835

原创 【数据结构】树-二叉树-堆(下)

🌟在上一节我们介绍了二叉树的相关概念,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>树-二叉树-堆堆。

2024-10-31 10:08:35 1016 4

原创 【数据结构】树-二叉树-堆(上)

🌟在上一节我们实现了队列,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>队列树。

2024-10-26 10:00:14 1347

原创 【数据结构】剖析链表10大经典问题

💫在之前小编给大家介绍了单链表双链表。

2024-10-22 20:32:00 1045 12

原创 【数据结构】队列

🌟在上一节我们实现了栈,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>栈队列。

2024-10-20 17:54:34 1243 3

原创 【数据结构】栈

🌟在上一节我们实现了双链表,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>双链表栈。

2024-10-19 17:22:12 1203 6

原创 【数据结构】双链表

🌟在上一节我们实现了单链表,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>单链表带头双向循环链表。

2024-10-17 18:12:37 1922 2

原创 【辨析】链表和顺序表的区别

🍃 如果觉得本系列文章内容还不错,欢迎订阅🚩。

2024-10-13 18:21:27 324 5

原创 【数据结构】单链表

在上一节我们实现了顺序表并介绍了线性表,如果感兴趣的小伙伴,可以阅读我的上一篇文章:>顺序表链表。

2024-10-13 12:33:18 1104 4

原创 【力扣实战练习1】

🍃 如果觉得本系列文章内容还不错,欢迎订阅🚩。

2024-10-10 18:49:16 635 4

原创 【数据结构】顺序表

通讯录,这一节要更客观的认识它的底层逻辑结构:顺序表。

2024-10-10 10:50:08 1083 3

原创 通讯录动态+文件版本

• 通讯录是底层是数组实现的,我们要在通讯录增删查改等功能,通过这些功能,我们可以很好的完成对成员信息的存储和查找。需要我们能够熟练的使用c语言,对指针,结构体,数组,动态内存管理等知识,完成通讯录,对数据结构的顺序表也有了一定的帮助通讯录主逻辑和猜数字和扫雷主函数逻辑相同:通讯录test.c主逻辑int main()int input;//初始化通讯录domenu();printf("请选择:>");

2024-10-04 09:00:00 972 6

原创 【时间复杂度和空间复杂度】

*这个过程循环K次即可完成右旋。我们通过这个思路实现:

2024-09-29 09:00:00 725 7

原创 C:程序编译和链接的秘密

在程序执行过程中,会出现两种环境,一种是翻译环境,一种是运行环境。翻译环境大致分为编译和链接两个大过程,而编译又分为预处理,预编译,汇编三个过程在编译过程中,首先程序(.c)会经过预处理成(.i)为后缀的文件,再经过编译成(.s)的中间文件,在经过汇编变成(.o)为后缀的目标文件,再经过链接库成(.h)的文件。程序会删除注释,会将#include 的库展开,将#define宏定义展开并替换,处理行号和文件名标识,以及处理条件编译指令等等。

2024-09-23 19:00:00 297 3

空空如也

空空如也

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

TA关注的人

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