自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从 0 到 1,吃透 Linux 权限管理的底层逻辑

严格来说,Linux 是一个操作系统,其核心部分被称为 “kernel”。然而,普通用户无法直接使用 kernel,而是需要借助 kernel 的 “外壳” 程序 ——shell,来与 kernel 进行交互。从技术角度来看,Shell 的最简定义是命令行解释器(command Interpreter)。它主要承担两项关键任务:一方面,另一方面,为了更好地理解这一过程,可以将其与 Windows 系统进行对比。

2025-03-27 14:45:50 772 42

原创 【Linux终端探幽】—基础指令集(下):魔法终章

打包,在计算机领域中,指的是将多个文件或目录进行合并,整合为一个单一的集合体的操作过程。压缩,则是运用特定算法,对数据进行重新编码,以减少其存储空间占用量的技术手段。

2025-03-24 08:32:53 945 51

原创 【Linux终端探幽】—基础指令集(中):迷宫寻宝

在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!当我们使用cat指令想要获取一个文件当中的内容时,如果我们不指定文件,则默认到键盘文件当中获取(读取)内容,如果我们使用(<)输入重定向,那我们则在指定文件当中获取(读取)内容!当我们重定向的文件存在时,如果文件中原来有内容,重定向后,原来的内容就会被我们写入的内容覆盖!如果我们什么都不写入,则会清空文件!

2025-03-16 12:59:48 1250 49

原创 【Linux终端探幽】—基础指令集(上):暗室点灯

不过,需要留意的是,众多文件系统(尤其是在挂载时采用了 noatime 或 relatime 选项的文件系统),出于减少磁盘写入操作以提升性能的考量,可能会对 atime 的更新进行优化处理,甚至忽略 atime 的更新。在 Windows 操作系统里,我们习惯表述为 “打开某某文件 / 文件夹”,而在 Linux 系统语境下频繁提及的 “目录”,从功能和概念层面而言,它与 Windows 系统中的文件夹高度相似,二者均用于组织和管理文件,为文件提供了一种层级化的存储结构。值得说明的是:文件=内容+属性。

2025-03-01 13:17:08 1278 49

原创 【C++】——深入探析与封装:探索unordered系列容器的高效应用

通过引入四个模板参数(K、

2024-12-10 14:39:05 2291 75

原创 【C++】——精细化哈希表架构:理论与实践的综合分析

先找出你的能力在哪里,然后再决定你是谁。—— 塔拉·韦斯特弗 《你当像鸟飞往你的山》

2024-12-06 13:09:20 5205 72

原创 【C++】—— 从零开始封装 Map 与 Set:实现与优化

人生的态度是,抱最大的希望,尽最大的努力,做最坏的打算。—— 柏拉图 《理想国》目录1、理论基石——深度剖析 BSTree、AVLTree 与 RBTree 的概念区别2、迭代器机制——RBTree 迭代器的架构与工程实现3、高级容器设计——Map 与 Set 的模块化封装3.1 泛型支持增强——RBTree 模板参数设计优化3.2 Set 容器构建——面向集合操作的优化设计 3.3 Map 容器构建——高效键值存储的封装实现Thanks谢谢阅读!!!为了实现 Map 和 Set 的封装,我们首先进行了充分

2024-12-03 14:46:52 2265 63

原创 【C++】——红黑树的平衡之道:深入实现与优化

坎坷之路,终抵星空。—— 哈珀·李 《杀死一只反舌鸟》

2024-11-29 15:41:28 2275 82

原创 揭秘 AIGC 背后的技术:GPT、BERT 与 Transformer 模型的工作原理

本文将深入探讨 AIGC 背后的核心技术——Transformer、GPT 和 BERT,带你一步步了解它们的架构原理、训练机制及实际应用。我们将从 AIGC 的基础概念开始,逐步深入到每个关键模型的技术细节,最后展望这些技术未来可能带来的变革。AIGC,即人工智能生成内容,指的是通过人工智能技术自动化地生成文本、图像、音频或视频内容。它依赖于先进的机器学习模型,特别是在自然语言处理和计算机视觉领域的突破。内容创作:无论是新闻写作、博客生成,还是小说创作,AIGC 都能够根据给定的提示生成高质量的文本。

2024-11-25 09:16:16 7993 79

原创 【C++】——探索自平衡的艺术:实现AVL树

如果结果不如你所愿,那就在尘埃落定前奋力一搏。—— 夏目友人帐。

2024-11-20 11:25:42 3056 74

原创 【C++】—— map 与 set 深入浅出:设计原理与应用对比

之前的学习之中 , 我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为。

2024-11-15 15:13:42 2038 90

原创 【C++】——高效构建与优化二叉搜索树

二叉搜索树又称二叉排序树(BST),它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。

2024-10-31 10:45:40 2393 112

原创 【C++】—— priority_queue :平衡效率与秩序的算法利器

/ 仿函数 反向迭代器 (加餐课) 堆排序(复习)

2024-10-29 09:26:14 4038 93

原创 给机器装上“脑子”—— 一文带你玩转机器学习

机器学习是一门研究算法和统计模型的学科,其目标是让计算机系统从数据中提取规律或“经验”,以提高完成特定任务的效率。机器学习的核心在于“自动化的学习过程”,与传统编程不同:传统编程要求开发者明确指令,而机器学习系统则依靠数据驱动,通过算法“自我学习”来做出预测、分类或决策。

2024-10-28 15:11:29 2942 74

原创 【C++】——Stack 与 Queue:抽象数据类型的魅力展现

在 CCC 语言中已经对栈和队列有了一定的了解,同时 CCC ++中我们对 模板中的 等容器进行了详细的探讨,从而获得了对这些容器操作的清晰理解。基于这些知识,现在转向学习 CCC ++ 里的 (栈) 和 (队列)就显得相对简单了。接下来我们在解题中体会 与 的使用方法有效的括号队列实现栈栈实现队列二叉树的层序遍历设计循环队列最小栈栈的压入、弹出序列逆波兰表达式求值

2024-10-25 10:18:55 690 81

原创 AIGC:开启智能创造的璀璨新篇章

AIGC。

2024-10-22 22:50:11 5610 102

原创 解密——二进制的奥秘

8进制的数字每⼀位是0~7的,0~7的数字,各自写成2进制,最多有3个2进制位就足够了,比如7的2进制是111,所以在2进制转8进制数的时候,

2024-10-16 00:00:00 1251 84

原创 【C++】——list 容器的解析与极致实现

人的一切痛苦,本质上都是对自己的无能的愤怒。—— 王小波是C++(STL)中的一个成员,其。不同于连续的、紧密排列的数组容器,List容器的内部是由双向链表构成的,使得它在插入和删除操作上,就如同行云流水一般顺畅,不需移动其它元素。环状链表的尾是一个空节点,符合“左闭右开”区间。需要频繁进行插入和删除操作的场合。更多地需要随机访问元素。

2024-10-15 12:13:07 3540 91

原创 【C++】——vector深度剖析&&模拟实现

这个是对迭代器区间进行的构造函数,思路很简单,把迭代器区间的数据依次尾插就可以了(这里之所以另外使用一个新的模版,而不是使用vector类的模版,是为了兼容其他容器类型)。<2> 如果拷贝的是内置类型的元素,memcpy既高效又不会出错,但如果拷贝的是自定义类型元素,并且自定义类型元素中涉及到资源管理时,就会出错,根据我们刚才所查看的源码,我们要使用三个迭代器,要使用迭代器,我们可以使用指针进行模拟。经过typedef的底层指针,而T类型是模版类的参数。值得注意的是STL里的 insert有返回值!

2024-09-26 18:36:06 1398 84

原创 【C++】——解析vector

将进行对vector的解析,先简单的理解一下初步功能。(大部分与string相似)使用STL的三个境界:能用,明理,能扩展 ,那么下面的vector,也是按照这个方法去学习。1.1认识vectorvector文档介绍<1>vector是表示数组的序列容器,其大小可以动态变化。<2>与数组一样,vector使用连续的存储空间来存储元素,也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是,与数组不同的是,vector的大小可以动态变化,存储空间将由容器自动管理。

2024-09-23 17:51:37 1477 109

原创 【C++】——多态详解

多态是面向对象技术(OOP)的核心思想之一,我们称具有继承关系的多个类型称为多态类型,通俗来讲:就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。多态分为编译时多态(静态多态)和运行时多态(动态多态),编译时多态(静态多态)主要就是函数重载和函数模板,他们传不同类型的参数就可以调用不同的函数,通过参数不同达到多种形态,之所以叫编译时多态,是因为他们实参传给形参的参数匹配是在编译时完成的,通常我们把编译时一般归为静态,运行时归为动态。运行时多态,

2024-09-20 10:43:44 1863 84

原创 【C++】——继承详解

这就是继承的语法格式继承方式与访问限定符号一样有着三种,不同的继承方式与不同的类成员组合会是不同的情况总结一下规律:<1>基类 private 成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。将年龄变为私有验证一下是否继承到了派生类对象可以看到继承下来了但是不可以访问!!<2>如果基类成员不想在类外直接被访问,但需要在派生类中能访问,就定义为 protected。

2024-09-17 15:41:06 1770 87

原创 【C++】——string的模拟实现

在这里即一个一个字节的拷贝,动态申请资源时候如果浅拷贝会指向同一块资源,会有着程序崩溃的问题同一块空间析构了两次 程序崩溃深拷贝即调用拷贝构造,编译器生成的拷贝构造是浅拷贝,需要我们自己显示实现拷贝构造来进行深拷贝。

2024-09-13 17:44:05 1385 89

原创 【C++】——string类的使用

引入size() 的原因是为了与其他容器的接。

2024-09-09 16:30:24 1912 86

原创 【C++】模板

对于模板函数的使用,

2024-08-25 16:09:16 1194 83

原创 【数据结构】——链式二叉树

1>二叉树的结构体 包含了数据和指向左右子树的指针}BTNode;<2>二叉树结点的创建<3>二叉树的创建Tip:二叉树是递归定义的,都可以单独看作 根、左子树、右子树。

2024-08-02 17:06:55 1648 49

原创 【数据结构】——堆的实现与算法

对比向上调整建堆,h-1层向下调整只需要移动1层,而向上调整需要移动h-1次因此向下调整是更优的建堆算法。插入一个数据后不再是小堆需要将新数据调整到合适的位置,所以堆的插入就是在数组插入数据再向上调整即可。剩下数据与堆顶数据比较,如果比堆顶数据大,那么替代堆顶进堆(覆盖堆顶数据然后向下调整)堆插入的过程其实就是建堆,在一个堆的末尾插入数据然后向上调整形成一个新的堆。Top—K问题:N个数中求最大的(最小的)前K个数据,一般N远大于K。<2>数据比堆顶数据大,覆盖调整之后形成一个新的小堆,再次比较。

2024-07-31 16:05:23 1720 48

原创 数据结构——栈和队列

定义一个栈结构体,里面放着指向栈数组的指针,栈顶元素的下标 top ,空间大小 capacity。

2024-07-27 11:35:00 1602 36

原创 [C++]类和对象(下)

尽量使用初始化列表初始化,因为那些你不在初始化列表初始化的成员也会走初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会用这个缺省值初始化。如果你没有给缺省值,对于没有显示在初始化列表初始化的内置类型成员是否初始化取决于编译器,C++并没有规定。对于没有显示在初始化列表初始化的自定义类型成员会调用这个成员类型的默认构造函数,如果没有默认构造会编译错误。1.2对象拷贝时编译器的优化• 现代编译器会为了尽可提高程序的效率,在不影响正确性的情况下会尽可能减少⼀些传参和传参过程中可以省略的拷贝。

2024-07-24 11:37:00 1151 43

原创 C/C++的内存管理

在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会。<1>操作类class Apublic:: _a(a)~A()private:int _a;int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间//还会调用构造函数和析构函数// 隐式类型转换free(p1);delete p2;// 内置类型是几乎是一样的// C。

2024-07-23 11:03:57 970 50

原创 [C++]类和对象(中)

C++中,类的默认成员函数就是用户没有在类定义中显示声明实现,编译器会自动生成的成员函数称为默认成员函数。

2024-07-19 18:11:53 1328 40

原创 【C++】类和对象(上)

类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,是一种用户自定义的数据类型,它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。类可以被看作是一种模板,可以用来创建具有相同属性和行为的多个对象。• class为定义类的关键字,classname为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员;类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。

2024-07-18 17:08:38 1216 41

原创 C++入门基础

• 定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。• namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。• namespace只能定义在全局,当然他还可以嵌套定义。• 项⽬⼯程中多⽂件中定义的同名namespace会认为是⼀个namespace,不会冲突。• C++标准库都放在⼀个叫std(standard)的命名空间中。

2024-07-11 18:07:22 731 28

原创 【初探数据结构】

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的 数据元素的集合。算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 输出。简而言之算法就是描述解决问题的方法。

2024-07-08 18:04:08 1060 21

原创 第一篇博客

我是一名江西某院校学生,专业并非是计算机相关,但我想尝试转入计算机专业。因此自学编程,但是对于小白来说还是很难的。随着学习时间当初晦涩难懂的英文字母也慢慢可以理解。已经能够独自写出正确代码。我认为学习是个反思的过程,任何东西都是需要反思总结得出自己的经验的。编程不仅需要理论支撑还需要动手能力。逻辑思维和实践不可或缺。至于编程目标,目前没有太大的就业方向,当下应该夯实基础,学好c语言。寒假之际,基本跟上老师基础,然后多加实践敲代码。最后希望大家都能在二进制世界遨游。

2024-01-16 22:41:29 409 10

空空如也

空空如也

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

TA关注的人

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