自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++项目设计】4.高并发内存池 -- thread cache 的整体设计及代码实现

在上上一篇我们实现了定长内存池的代码,我们也清楚的知道了定长内存池如何分配内存,回收内存,分配对象和释放对象,并且使用自由链表来管理切好使用的小块内存,本期我们将从定长内存池代码的基础上进一步扩展代码,从而实现thread cache的设计。我们可以回顾一下定长内存池,首先定长内存池只支持固定大小内存块的申请释放,因此定长内存池中只需要一个自由链表管理释放回来的内存块。

2025-03-22 14:38:01 642

原创 8.C语言分支结构详解:掌握if语句与关系操作符

C语言作为一门结构化的程序设计语言,其核心逻辑由顺序结构、选择结构(分支结构)和循环结构三大基础结构组成。这三种结构如同积木一般,能组合出任何复杂的程序逻辑。本文将重点解析分支结构的实现方式——if语句和switch语句,并深入探讨关系操作符的使用技巧,帮助大家掌握条件判断的核心机制。

2025-03-16 21:20:41 759

原创 【Linux】从入门到精通:Make与Makefile完全指南

Make是一个自动化构建工具,主要用于管理源代码的编译和构建过程。它通过读取Makefile文件来执行构建任务,能够自动检测文件变化并仅编译必要内容,显著提升开发效率。

2025-03-02 23:31:34 1643

原创 【Linux】Linux动静态库链接:从原理到实战,彻底搞懂程序运行的“最后一公里“

欢迎来到 CILMY23 的博客🏆本篇主题为:Linux动静态库链接:从原理到实战,彻底搞懂程序运行的"最后一公里"如果你觉得有帮助,还可以点点关注。

2025-02-27 12:31:29 928

原创 【STL专题】优先级队列priority_queue的使用和模拟实现,巧妙利用仿函数解决优先级

上期我们讲了栈和队列的使用和模拟实现,本期我们将探究priority_queue,优先级队列的使用和模拟实现,并应用仿函数来解决优先级的问题。仿函数(Functor)是 C++ 中通过重载operator()运算符的类或结构体,其对象可以像函数一样被调用。它常用于定制算法的行为,例如排序规则、比较逻辑等,相比普通函数指针,仿函数能携带状态(成员变量),灵活性更高。例如我们在算法中使用sort,我们可以定义两个仿函数,来控制排序的逻辑。

2025-02-25 21:11:38 922

原创 【Linux】Linux编译器GCC使用指南:从安装gcc到深入理解代码编译全过程

GNU Compiler Collection(GCC)是Linux系统中最核心的开发工具链,支持C、C++、Objective-C等多种编程语言。作为自由软件的旗舰项目,GCC不仅功能强大,还能通过编译选项精准控制代码转换过程。

2025-02-19 17:55:11 1278

原创 【Linux】从零掌握Vim,vim的进阶应用:如何配置Vim,Vim进入暂停模式后怎么办?

前两篇我们已经把vim了解的差不多了,本篇我们将了解如何配置vim,毕竟没有人很喜欢每次打开vim都需要自己输入set nu而打开行号吧,其次我们将解决一下vim进入暂停模式了怎么办,在我使用的前两天我常常面临这个问题不知所措。

2025-02-14 13:15:08 616

原创 【Linux】从零掌握Vim:三种模式详解,如何使用Vim,用vim批量化注释。

关于vim的基础认识我们已经在上一篇介绍过了,所以本篇的重心在于如何使用Vim。Vim的使用还是通过一些常见的命令来控制的,Vim是一款多模式的文本编辑器,所以不同模式有不同的命令,我们只要掌握好命令就能使用好Vim。通过对三种模式的认识和总结,我们可以画一张图出来。如果你想快捷退出的话可以输两个大写的ZZ,这表示快速保存并退出,而不是按ctrl + z,这样就vim编辑器就进入暂停模式了。

2025-02-13 14:02:01 1105

原创 【Linux】从零掌握Vim:vim的基础认识,什么是vim

欢迎来到 CILMY23 的博客🏆本篇主题为:从零掌握Vim:vim的基础认识,什么是vim如果你觉得有帮助,还可以点点关注。

2025-02-13 14:00:44 801

原创 【STL专题】栈和队列的使用以及模拟实现

stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其对象只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。

2025-02-10 16:01:42 706

原创 【C++】哈希表和哈希桶

我们可以举个例子来深刻理解一下哈希假设哈希函数为 h(x) = x % 10:当我们输入 5,哈希值为 5 % 10 = 5。当我们输入 15,哈希值为 15 % 10 = 5。这样无论有多少长度的输入,只要末尾是5,那它就会被放到同一栏当中。这有点像抽屉,符合的我就统统丢进来,不符合的我就统统分类放到其他抽屉里。所以这里一共有三部分,哈希的输入,哈希函数,哈希值。

2025-02-07 11:29:34 578

原创 【C++】3.高并发内存池的整体框架

博客主题:高并发内存池的整体框架。

2025-02-07 11:29:04 632

原创 【C++】2.高并发内存池 -- 如何设计一个定长内存池

上期我们说到malloc,我们知道malloc,在C/C++中动态申请内存都是通过malloc去申请内存, 并且malloc就是一个内存池。但是malloc因为要兼容通用,它什么场景下都可以用,但是什么场景下都可以用就意味着什么场景下都不会有很高的性能,所以我们要设计一个针对点一定场景下的内存池,来实现高性能。所以本期我们就先设计一个定长内存池,先熟悉一下简单内存池是如何控制的,第二他会作为我们后面高并发内存池的一个基础组件。那定长内存池就是针对固定大小。

2025-02-05 11:55:26 600

原创 【C++】1.高并发内存池项目介绍、什么是内存池

当前项目是实现一个高并发的内存池,它的原型是google的一个开源项目tcmalloc,tcmalloc全称 Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc、free)。我们这个项目是把tcmalloc最核心的框架简化后拿出来,模拟实现出一个自己的高并发内存池,目的就是学习tcamlloc的精华。tcmalloc是全球大厂google开源的,我们可以通过这个链接查看tcmalloc相关的一些情况。

2025-02-05 11:54:10 733

原创 解锁C++第二大特性,代码也玩“父子”游戏——继承

经过之前的学习,我们学了C++的第一大特性 —— 封装。现在我们来进行总结和回顾。封装可以理解为有两个层次的含义,其中封装的第一层是,以前我们学习C语言,它的数据和方法是分离的,在C++中,我们把数据和方法放到一个类里,用访问限定符进行限制。这是第一个层级的封装。第二个层级的封装,我们可以参考一下反向迭代器,还有迭代器的定义。这里的封装是指的什么呢?就是有些东西封装了后,我们在上层看到是类似的,但是下层是弯弯绕绕的。这里的上下层就可以类比迭代器的使用和实现。

2024-11-18 23:57:40 845

原创 7.揭秘C语言输入输出内幕:printf与scanf的深度剖析

printf和scanf作为C语言标准库中最为基础的输入输出函数,它们的正确使用和深入理解,对于每一个C语言学习者来说都至关重要。本文旨在通过深入浅出的方式,带领读者全面理解并掌握printf和scanf这两个函数的用法。我们深入了解了printf和scanf这两个C语言标准库函数的基本用法和高级特性。printf函数能够按照指定的格式输出各种类型的数据,而scanf函数则能够读取用户输入的数据并进行类型转换。这两个函数共同构成了C语言编程中输入输出功能的核心。下期我们将从分支结构开始讲起。

2024-11-18 00:06:11 1119

原创 6.C操作符详解,深入探索操作符与字符串处理

在上一篇,我们深入探讨了C语言中的数据类型和变量声明与创建,从丰富的数据类型到变量的创建、初始化和分类,这些知识为我们进一步学习C语言奠定了坚实的基础。现在,我们已经站在了C语言世界的门口,窥见了其内部的无限可能。接下来的博客,我们将继续深入C语言的精髓,一起迈向更深层次的编程之旅。我们探讨了C语言中的字符串长度计算(strlen与sizeof)、算术操作符(+、-、*、/、%)、赋值操作符(=、+=等)及单目操作符(++、–、+、-)。同时,介绍了强制类型转换的注意事项。下期我们将介绍输入输出和分支循环。

2024-11-16 08:59:09 764

原创 【Linux】Linux权限历险记---快速修改权限的八进制方案以及文件类型的奥秘

上期我们介绍了文件权限的基本概念和分组方式,本期我们将深入探讨如何快速修改文件权限的八进制方案以及Linux系统如何区分文件类型。

2024-10-21 00:00:00 1000

原创 5.C语言基础入门:数据类型、变量声明与创建详解

接下来的博客将深入C语言的变量、数据类型等内容,一起来踏上充满挑战的C语言学习之旅吧。

2024-10-11 01:38:28 1214 1

原创 4.C语言概念之旅:解锁关键字,字符,字符串的秘密,揭秘语句和注释,程序员的宝藏

本期涵盖了C语言的多个关键方面,从基础的关键字介绍到字符和ASCII编码,再到字符串、转义字符、语句分类以及注释等话题。每个部分都包含了相关的文章标题或编号,方便读者快速定位感兴趣的内容。接下来,让我们一起深入探索C语言的奥秘,开启一段充满挑战与收获的编程之旅吧!

2024-10-10 00:16:49 1175 2

原创 3.C语言入门:解锁基础概念,动手实现首个C程序

上期我们成功解决了VS2022社区版C语言的安装问题,本期,我们将进带领大家了解在VS2022社区版上如何新建项目、添加源文件和头文件,编写和运行第一个C语言程序,并且了解什么是库函数。其实每个C语⾔程序不管有多少行代码,都是从 main 函数开始执行的, main 函数是程序的入口,main 函数也被叫做:主函数。main 前面的 int 表示 main 函数执行结束的时候返回⼀个整型类型的值。所以在 main 函数的最后写 return 0;正好前后呼应。

2024-10-09 02:00:00 2203 2

原创 2.VS 2022 社区版C语言的安装教程,不要再卡在下载0B/s啦

在编程的世界里,选择一个合适的集成开发环境(IDE)是至关重要的。Visual Studio(VS)作为微软开发的强大IDE,被广泛应用于各类编程项目中。本文将详细介绍如何在Windows系统上安装Visual Studio 2022社区版,并配置其用于C语言开发。

2024-10-08 02:00:00 2533 3

原创 1.C语言是什么?编程界的‘常青树’,它的辉煌你不可不知

在计算机科学的浩瀚宇宙中,C语言犹如一颗璀璨的星辰,历经数十载风雨,依旧熠熠生辉。它不仅是编程初学者踏入编程世界的钥匙,更是系统编程、嵌入式开发等领域的核心语言。两年前,我初次与C语言相遇,那份对未知世界的好奇与探索的热情,至今仍让我记忆犹新。如今,我决定再次踏上这段旅程,以更加深入和全面的视角,重新探索C语言的魅力。本次专栏的重启,不仅是对我过去学习的一次回顾与总结,更是对未来探索的一次全新启程。

2024-10-07 02:00:00 1000 2

原创 【Linux】文件权限与类型全解:你的文件安全指南

Hello,大家好,这里是 CILMY23 的频道,上期我们接触了Linux中组和用户,组是为了让我们在多人协作的时候,更好的进行权限的管理,而角色和用户又是相补相成的,用户扮演具体的角色,角色又对用户进行补充,今天我们将了解文件权限和不同的文件类型。

2024-09-12 00:09:08 965 3

原创 【Linux】Linux权限历险记---组和用户的关系

Hello,大家好,这里是 CILMY23 的频道,上期我们接触了Linux中权限的一部分,我们讲到了用户,我们知道shell外壳是帮助我们和操作系统内核进行沟通的桥梁,而Linux中的权限本质,实际上是人和事物的属性构成,用户又分为超级用户(root)、普通用户,今天我们将从Linux中的另一种用户讲起,并接触组和文件中的权限的概念。个人分享:白露收残暑,清风衬晚霞。

2024-09-11 00:01:13 1287

原创 【C语言】揭开计数制的面纱:深入浅出二进制及二进制计算

在生活中,任何一个数通常都可以用两种不同的方法表示,一种是按“值”表示法,即选定某种进位的计数体制来表示某个数值,这就是计数制,简称数制任何一个十进制数都可以用其幂的形式表示: 我们把这种情况也叫“按权展开”,显然通过这种展开,我们能很快发现一个规律,那就是小数点前的数字,只要按对应的数字*对应的幂就好了,十进位就是*10^(n-1),小数点后是10^(-n),这样全部加在一块,就构成一个十进制数了。

2024-09-10 00:13:20 1429

原创 揭秘卷积:数学与信号的奇妙邂逅

卷积成为了一个我生活中的名词,就这样刻在了数学解题的历程中,我仍有一个疑惑,到底什么是卷积。网上说它是一个强有力的工具,有的说是一个机器学习中的概念,还有的是从泛函分析中出来的,可泛函又是什么,我也不懂,偶然下刷到b站up王木头学科学的视频,我也决定写下这篇来分享看看。

2024-09-09 00:00:00 935

原创 【Linux】Shell 与权限:Linux 系统的双重保障

其实不妨从生活中想想,哪些事情是有权限的事情,哪些事情是没权限的事情?最典型的,莫过于各大视频平台的视频vip,无论是爱奇艺,优酷,腾讯视频。有vip就有权限看对应的资源,没有vip就没法看对应的资源。除此之外,还有门禁,进入宿舍的时候,要刷脸啊,不是这栋楼的就没有权限进入。所以什么是权限呢?权限就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源这个世界上大家都能做的工作,可能就不会有权限的概念。

2024-09-06 00:00:00 840

原创 【数据结构和算法】10.堆的模拟故事:用图文解析讲述它的成长之旅

Hello,大家好,这里是 CILMY23 的频道,上期我们接触了树,知道了堆(Heap)总是一棵完全二叉树,今天我们就来深入探究一下堆的模拟实现。个人分享:每个人的内心都是一片海洋,每一路人都如此。每个人都是思想、见解和情感的宇宙。

2024-09-05 00:00:00 877 1

原创 【数据结构和算法】9.树和堆的奇妙世界:数据结构的无尽可能

hello,大家好,这里是CILMY23的频道,今天我们接触的是树,这是数据结构中的树,那接下来就跟随我的视角来看看吧。

2024-09-04 10:14:11 1263

原创 【Linux】Linux命令行大冒险:寻找、搜索与压缩的神奇之旅

本篇主要讲述了文件查找和压缩解压的常用指令,包括 find、grep、zip、unzip 和 tar。这些指令在日常的 Linux 操作中非常实用,能够帮助我们高效地管理文件和目录。

2024-09-03 05:00:00 1628

原创 【Linux】文件魔法师:时间与日历的解密

农历是中国传统的历法,主要用于农业生产和节气的安排。阴历:以月亮的周期(约29.5天)为基础,通常一个月有29天或30天。阳历:以太阳的运动为基础,反映季节变化。一年通常有12个月,约354天。为了与阳历对齐,每隔2到3年会增加一个闰月,使得农历年与阳历年保持一致。农历的节气(如立春、夏至等)与农业活动密切相关,因此在中国传统文化中具有重要意义。

2024-09-02 00:00:00 786

原创 【Linux】文件变身大作战:Linux下的文件重命名艺术

mv 指令mv 源文件 指定目录(重命名)mv 指令可以用来重命名文件,相当于Windows系统中的剪切功能,同时可以边剪切,边重命名cat 指令cat 文件用来查看目标文件的内容,更适合用来查看小文件内容。cat -n :对输出的所有行编号cat -s :不输出多行空行cat 回车:默认从键盘文件读数据,然后输出到显示器文件中tac 指令tac 文件用来逆向查看目标文件的内容more 指令(不推荐)more 文件。

2024-08-05 00:10:56 1320 6

原创 【Linux】Linux重定向指南:探索输出重定向与追加重定向的奥秘!

在 Linux 系统中,重定向是一种强大的工具,它允许你控制命令的输入和输出数据流,将数据从一个地方转移到另一个地方,从而实现更灵活的操作。说白了,重定向就是改变了数据的方向。标准输入、标准输出和标准错误:数据流的源头和目的地标准输入 (stdin):默认情况下,程序从键盘接收输入。你可以想象它像一个打开的管道,程序通过这个管道接收用户的输入。标准输出 (stdout):默认情况下,程序将输出显示到终端。它就像另一个管道,程序将处理结果通过这个管道输出到屏幕上。标准错误 (stderr)

2024-08-03 16:10:08 1624 14

原创 【STL专题】深入探索vector:动态数组的魔力【入门指南】

这几篇对加深string都有认识,那接下来我们将接触vector容器,作为经典的容器之一,它又会带给我们什么呢?在模拟实现完string后,才明白大家为什么都在吐槽string,甚至阅读了一篇大佬的发言。string 的接口繁多,初次学习的时候眼花缭乱,不禁感叹的是,我也写下了最长的一篇博客(STL 的string类怎么啦?C++面试中string类的一种正确写法 | 酷 壳 - CoolShell。🏆本篇主题为:深入探索C++之std::vector:动态数组的魔力。甚至还阅读了一篇好文。

2024-08-02 00:45:00 1466 24

原创 【算法专题】滑动窗口之209. 长度最小的子数组(力扣)

🏆本篇主题为:滑动窗口之209. 长度最小的子数组(力扣)

2024-08-01 00:15:00 623 11

原创 【Linux】3.Linux 指令大揭秘:常见八个指令的妙用(下)

上周我们快速入门了六个指令,今天我们将详解这些常见的指令,我将分上下两篇讲解这八个指令,本期是下篇,开始接触重要的四个指令。🏆本篇主题为:Linux 指令大揭秘:常见八个指令的妙用(下)

2024-07-31 00:15:00 1100 10

原创 【Linux】2.Linux 指令大揭秘:常见八个指令的妙用(上)

上周我们快速入门了六个指令,今天我们将详解这些常见的指令,这些指令包括我们上期见过的,也有新增加的。

2024-07-30 00:15:00 1057 10

原创 【算法专题】双指针算法之18. 四数之和(力扣)

🏆本篇主题为:【算法专题】双指针算法之18. 四数之和(力扣)

2024-07-29 00:15:00 1227 7

原创 【Linux】一篇总结!什么是文件?什么是路径?相对路径和绝对路径有什么区别?

本期将作为番外,特别知识补充篇,主要涉及一些系统的认识和Linux文件系统结构,以及相对路径和绝对路径,包括用户的认识。

2024-07-29 00:15:00 3188 12

空空如也

空空如也

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

TA关注的人

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