自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解 Linux(7) 命令与动态库:从文件操作到程序链接的实践指南

本文详细解析了Linux下C程序从预处理到动态链接的完整编译流程。首先介绍了预处理的宏替换、文件包含和条件编译,然后逐步讲解编译生成汇编代码、汇编转换为机器码的过程。重点剖析了动态链接的原理,包括符号解析、内存映射和函数调用的底层实现。通过对比静态链接与动态链接的差异,分析它们在文件体积、更新维护和内存占用等方面的优缺点。文章结合实例命令和图解,深入浅出地展示了Linux程序编译与链接的核心机制。

2025-11-12 21:06:20 612

原创 告别陌生!Linux Vim 基础命令与编辑技巧

本文介绍了Linux下Vim编辑器的使用指南,从基础到进阶操作全面讲解: 基础操作:文件打开/退出方式、模式切换(命令/插入/底行/可视化模式)、光标移动、文本编辑和查找功能 进阶技巧:批量操作(数字+命令组合)、可视化模式一键注释/删除、文本替换、分屏编辑 环境配置:讲解.vimrc配置文件设置,包括显示行号、智能缩进、搜索优化等个性化配置 效率提升:标记跳转、快捷键组合等专业技巧,帮助用户从"能用"到"高效使用"Vim 150字完整覆盖Vim核心功能,适合各阶段用

2025-11-08 21:39:16 849

原创 (Linux (6):从包管理到工具探索,构建系统操作基础认知)

本文系统介绍了Linux系统中软件安装的多种方式及其优缺点,重点剖析了源码安装、软件包安装和包管理器三种主流方法。源码安装虽然灵活但存在依赖管理和版本兼容问题;软件包安装简化了流程但仍有兼容性局限;包管理器(如yum/apt)因其自动化处理依赖和统一版本管理的优势成为当前主流方案。文章深入分析了软件安装失败的两大核心原因:依赖不完整和系统兼容性不足,并具体阐述了系统版本、硬件架构和依赖库版本三大关键兼容性问题维度。最后提出了完整的软件安装评估流程,为Linux用户提供了系统性的软件安装指导方案。

2025-11-07 20:41:07 1054

原创 Linux权限(5)

Linux权限管理摘要: 权限是Linux系统的核心安全机制,通过角色划分(拥有者、所属组、other)和权限位(r/w/x)实现精细控制。sudo指令允许临时提权,通过/etc/sudoers白名单管理授权。权限的本质是界定操作范围,遵循最小权限原则。文件权限分为三类:读(r)、写(w)、执行(x),目录权限另有特殊含义。root用户拥有最高权限,普通用户只能修改自己的文件权限。权限管理通过chmod/chown/chgrp等命令实现,多用户间通过家目录权限隔离保护隐私。系统采用缺省权限机制,普通文件默认

2025-11-04 20:44:59 878

原创 Linux指令(4)

本文介绍了Linux常用指令和系统知识,主要包括: 压缩解压指令:zip/unzip的使用方法和注意事项,重点说明递归压缩目录必须加-r参数;tar命令的打包解包操作及常用选项。 系统信息查看:通过uname -a命令解析Linux内核版本和硬件架构信息。 快捷键技巧:如终止任务(Ctrl+c)、命令补全(tab)和历史命令搜索(Ctrl+r)等实用技巧。 Shell运行原理:解释了外壳程序的作用是作为用户与内核的中间层,既能简化操作又保护内核安全,并说明命令执行是通过bash创建子进程完成的。 文章通过具

2025-11-01 20:31:37 750

原创 【Linux指令3】

本文介绍了Linux中常用指令echo、mv、tac、more/less的用法,包括打印字符串、文件操作、重命名、反向打印和逐行查看文件等功能。同时深入解析了Linux"一切皆文件"的设计理念,指出所有资源(包括设备)都以文件形式管理,并解释了标准IO函数printf/scanf的底层文件操作逻辑。文章还通过终端文件/dev/pts的实例,展示了Linux文件系统的统一性。 (149字)

2025-10-26 21:05:16 1082

原创 Linux指令篇 (2)

语法: mkdir [选项] 目录功能:在当前目录下创建一个目录如:创建这一系列文件,如果在创建过程中其中有文件不存在就会自动创建。mkdir操作实例图:rmdir的功能与mkdir的功能恰恰相反。mkdir是创建目录,那么rmdir就是删除命令。如:rmdir操作实例图:删除路径上的所有文件rm指令(重要)功能:rm命令可以同时删除文件或目录语法:rm [选项] 文件或目录 (需搭配选项)rm -f 操作实例图​​1 强制删除​​:​​忽略不存在的文件​​:当尝试删除一个

2025-04-19 12:29:08 858 6

原创 飞浆PaddlePaddle 猫狗数据大战

而在。

2025-04-03 20:28:55 1643 74

原创 LInux指令篇 (1)在Linux指令的引领下,我们得以穿梭于文件的森林,探索目录的迷宫,领略进程的奔涌,以及网络的浩渺。每一条指令,都是一次心灵的触碰,一次智慧启迪。

选项————————

2025-03-31 12:07:27 823 58

原创 【C++---unordered_set/map底层封装】个不拘一格的集合。它不似有序集合那般循规蹈矩,而是以一种洒脱不羁的方式,将元素们随意地散落其中。每一个元素都是独一无二的。

【代码】【C++---unordered_set/map底层封装】个不拘一格的集合。它不似有序集合那般循规蹈矩,而是以一种洒脱不羁的方式,将元素们随意地散落其中。每一个元素都是独一无二的。

2025-01-26 11:47:01 1578 64

原创 【C++---哈希表】哈希表的魅力,不仅在于其高效与便捷,更在于其背后所蕴含的深刻哲理。它告诉我们,即使面对再复杂、再混乱的世界,只要我们用心去寻找、去创造,总能找到一种方法,将其变得有序而美好。

这里的unordered_set其实与set相似,只不过底层实现是不一样,还有其他特殊的不同.不过他们大部分功能是相同的。unordered_set的声明如下,Key就是unordered_set底层关键字的类型•unordered_set默认要求Key⽀持转换为整形,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现⽀持将Key转成整形的仿函数传给第⼆个模板参数•unordered_set默认要求Key⽀持⽐较相等,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现⽀持将Key⽐较相等的仿函数传给第三个模板参数•。

2025-01-25 11:57:58 2105 55

原创 【C++----红黑树封装set / map底层大致封装】在C++的世界里,每一次编译都是对智慧的考验,每一次调试都是对耐心的磨砺。开发者们在这里不断学习、成长,用代码编织出一个个精彩纷呈的故事。

•如果当前结点是⽗亲的右,根据中序左⼦树->根结点->右⼦树,当前当前结点所在的⼦树访问完了,当前结点所在⽗亲的⼦树也访问完了,那么下⼀个访问的需要继续往根的祖先中去找,直到找到孩⼦是⽗亲左的那个祖先就是中序要问题的下⼀个结点。end()如何表⽰呢?如下图:当it指向50时,++it时,50是40的右,40是30的右,30是18的右,18到根没有⽗亲,没有找到孩⼦是⽗亲左的那个祖先,这是⽗亲为空了,那我们就把it中的结点指针置为nullptr,我们⽤nullptr去充当end。

2025-01-18 17:31:05 1663 59

原创 【C++---红黑树】在编程的浩瀚星空中,C++犹如一颗璀璨的星辰,以其独有的韵律和节奏,吟唱着智慧与创造的赞歌。它不仅仅是代码的堆砌,更是思维与艺术的交融,引领着无数追梦者,在数字的世界里翩翩起舞。

1.1红黑树的规则1.2路径问题1.3 红⿊树如何确保最⻓路径不超过最短路径的2倍的?1.4 红⿊树的效率对于时间复杂度的计算:假设N是红⿊树树中结点数量,h最短路径的⻓度,那么 2h-1

2025-01-16 20:53:42 1562 45

原创 动态规划-----路径问题

对于路径问题:第一:分析状态第二:列出状态方程第三:初始化(防止越界访问)第四:填表顺序(由状态方程的出填表顺序)第五:得出返回值。

2024-11-27 17:42:05 4430 137

原创 鸿蒙生态崛起!!!

鸿蒙生态是基于OpenHarmony共建共享的生态,是所有基于OpenHarmony系统(开源鸿蒙)社区版本开发、并通过开放原子开源基金会的开源鸿蒙认证,打标Powered by OpenHarmony的设备和操作系统,以及运行在这些设备和操作系统之上的应用的总称。

2024-11-25 21:15:54 3068 40

原创 python 小课堂(二)

概念:条件语句能够表达 “如果 … 否则 …” 这样的语义. 这构成了计算机中基础的 逻辑判定.条件语句 也叫做 分支语句, 表示了接下来的逻辑可能有几种走向.例子:一个典型的例子: 如果丘处机没有路过牛家村,1. 那么金兵不会死在郭, 杨两家手上2. 郭, 杨两家就不会流亡北方3. 郭夫人就不会去到大漠, 完颜洪烈就不会遇到包惜弱4. 郭靖就不会和江南七怪救了铁木真5. 蒙古就不会统一6. 蒙古铁骑就不会西征7. 欧洲就不会出现火药, 也就不会出现文艺复兴, 大航海.

2024-11-25 18:43:03 1203 105

原创 AI大模型如何赋能电商行业,引领变革?

个性化推荐系统AI技术通过分析用户的浏览行为、购买历史和兴趣偏好,能够生成个性化的产品推荐列表。这种推荐系统不仅提高了用户的购物体验,还显著增强了用户的购买意愿和转化率。例如,电商平台如亚马逊就采用了这种策略,通过“顾客还购买了”或“与您购买的商品相关”的推荐,有效提升了销售额。AI在订单处理环节中的作用快速处理与分析订单数据AI技术能够实现对大量订单数据的快速处理和分析,通过智能算法优化订单处理流程,提高订单处理效率。

2024-11-24 11:51:34 1267 21

原创 详解 【AVL树】

那么a就只有4处可以插入值导致5的平衡因子为2,而b或c是以上x,y,z三种情况都可以。这里a的结构只能是x,因为为y或z时那么旋转的结点就不是5了,而是y或z结点*那么搭配就有3**3*4=36种搭配结果。

2024-11-22 23:40:19 1727 58

原创 python小课堂(一)

1、print()括号中不仅能输入整型浮点字符串,还能输出布尔类型print(10)print(1.2)2、如果想要在print()括号中输出变量的数据时,则我们就要用到f“内容”的格式数据变量用{}引出a=10b=1.1d=Falseprint(f"整型a = 10 b = 1.1 c = "hello world" d = False print(f"整型 {a } 、浮点 {b } 、字符串 {c } 、布尔 {d } ")

2024-11-22 20:24:41 9221 77

原创 怎么看待Ai发展前景?

人工智能技术的应用场景和潜力,带来的影响和贡献,在现代的技术背景下的机遇人工智能技术的应用场景和潜力,带来的影响和贡献,在现代的技术背景下的机遇。

2024-11-18 17:19:18 3181 41

原创 我的创作纪念日

1.最大的成就莫过于我如今学习到的知识,和获得的粉丝。

2024-11-18 16:57:46 392 9

原创 c++--------《set 和 map》

• set的声明如下,T就是set底层关键字的类型• set默认要求T⽀持⼩于⽐较,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现仿函数传给第⼆个模版参数• set底层存储数据的内存是从空间配置器申请的,如果需要可以⾃⼰实现内存池,传给第三个参数。• ⼀般情况下,我们都不需要传后两个模版参数。• set底层是⽤红⿊树实现,增删查效率是 ,迭代器遍历是⾛的搜索树的中序,所以是有序的。O(logN)

2024-11-17 18:03:29 2050 86

原创 《⼆叉搜索树》

4• ⼆叉搜索树中可以⽀持插⼊相等的值,也可以不⽀持插⼊相等的值,具体看使⽤场景定义,后续我们学习map/set/multimap/multiset系列容器底层就是⼆叉搜索树,其中map/set不⽀持插⼊相等值,multimap/multiset⽀持插⼊相等值。那么这样的效率显然是⽆法满⾜我们需求的,⼆叉搜索树的变形,平衡⼆叉搜索树AVL树和红⿊树,才能适⽤于我们在内存中存储和搜索数据。找到key对应的value。key的搜索场景实现的⼆叉树搜索树⽀持增删查,但是不⽀持修改,修改key破坏搜索树结。

2024-11-10 15:32:20 1624 120

原创 c++-----------------多态

多态是⼀个继承关系的下的类对象,去调⽤同⼀函数,产⽣了不同的⾏为。⽐如Student继承了Person。Person对象买票全价,Student对象优惠买票。

2024-11-08 11:54:32 2376 69

原创 c++----------继承

下⾯我们看到Person是基类,也称作⽗类。Student是派⽣类,也称作⼦类。(因为翻译的原因,所以既叫基类/派⽣类,也叫⽗类/⼦类)

2024-11-06 17:32:32 875 102

原创 C++ ----------- 栈和队列

1. 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的2. 此类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)3. 优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。4.底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。

2024-11-02 16:57:00 1909 92

原创 vector

vector的介绍文档使用STL的三个境界:能用,明理,能扩展 ,那么下面学习vector,我们也是按照这个方法去学习)构造函数声明接口说明vector()(重点)无参构造构造并初始化 n val(重点)拷贝构造使用迭代器进行初始化构造vector的构造代码演示。

2024-09-29 17:42:54 1227 99

原创 初识模版!!

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。1.隐式实例化:让编译器来根据实参来推导参数模版实际类型。2.显示实例化:在函数名字后的中填写类型。相似的结构太多,这样看起来就会很挫。

2024-09-21 17:19:14 823 92

原创 排序《数据结构》

2、稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。1、排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

2024-09-08 20:08:57 2309 119

原创 堆《数据结构》

量非常大,排序就不太可取了(可能数据都不能一下子全部加载到内存中)。2:建堆和堆删除中都用到了向下调整,因此掌握了向下调整,就可以完成堆排序。比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。如:a[child] < a[parent] 建。a[child] > a[parent]建。向下调堆:从最后一个根节点开始调整。1.用数据集合中前K个元素来建堆。对于Top-K问题,能想到的。第三层: 向上调整2次。第二层:向上调整 1次。第n层:向上调整n次。第n层:2^n-1个。

2024-08-24 18:41:17 1963 118

原创 二叉树《数据结构》

又因为一个度为2的结点会有2个子结点,一个度为1的结点会有1个子结点,除根结点外其他结点都有父结点,n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=n/2 或 n0=(n+1)/2。1.某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( )双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点;如上图:A是B的父结点。的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对。

2024-08-19 19:16:00 2218 85

原创 数据结构-------队列

FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头。队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。首先实现一个队列,然后在构建俩个队列,俩个队列互相导数据。与栈类似,可以把声明与定义分开。组头上出数据,效率会比较低。实现文件.c(接口实现)

2024-08-10 18:17:04 923 37

原创 数据结构《栈》

分开成。

2024-08-10 17:36:53 516 20

原创 C++之————string类

运用到getline来代替cin输入字符串,因为cin>>与scanf类似遇到字符空格(‘ ’)就会结束,而getline则不会最后再用 总数-1-pos=最后一个单词长度int main()return 0;

2024-08-06 17:48:50 1369 49

原创 类和对象(下)

所以静态成员函数没有this指针,静态成员函数中可以访问其他的静态成员,但是不能访问⾮静态的,因为没有this指针。引⽤成员变量,const成员变量,没有默认构造的类类型变量,必须放在初始化列表位置进⾏初始。尽量使⽤初始化列表初始化,因为那些你不在初始化列表初始化的成员也会⾛初始化列表,如果这。如果你没有给缺省值,对于没。显⽰在初始化列表初始化的⾃定义类型成员会调⽤这个成员类型的默认构造函数,如果没有默认构。3、⽤static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指针。

2024-08-01 17:06:41 3917 53

原创 C++ 《类与对象》(中下)

运算符重载是具有特名字的函数,他的名字是由operator和后⾯要定义的运算符共同构成。和其他函数⼀样,它也具有其返回类型和参数列表以及函数体。//声明int operator+(int x,int y)//定义return x+y;但是关于运算符重载函数的声明与定义一定的要求:// 重载为全局的⾯临对象访问私有成员变量的问题// 有⼏种⽅法可以解决:// 1、成员放公有// 2、Date提供getxxx函数// 3、友元函数// 4、重载为成员函数1.成员公有。

2024-07-25 18:56:29 1161 39

原创 C++《类和对象》(中)

默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。那么我们主要学习的是1:编译器自动生成的成员函数是否满足我们的需求。2:当编译器自动生成的函数不满足我们需求时,我们应该如何自己实现?C++把类型分成内置类型(基本类型)和⾃定义类型。内置类型就是语⾔提供的原⽣数据类型,如:int/char/double/指针等,//栈public:perror("malloc申请空间失败");return;_top = 0;

2024-07-24 19:58:36 1594 57

原创 C++《类和对象》(上)

class Datepublic:int Getdaymonth(int year,int month)//日期获取 默认成《内联函数》在calss中return 29;else//d1+=/+//d1-= 和 -//d++,++d//d--和--d//d1-d2(俩日期相减)private:int _year;int _month;int _days;// C++升级struct升级成了类// 1、类⾥⾯可以定义函数。

2024-07-23 19:35:12 1088 22

原创 C++《日期》实现

在该文件中是为了声明函数和定义类成员。

2024-07-13 18:14:38 564 37

原创 初阶C++(三)

inline实际上是对代码效率的提高起着重要作用,其特点:⽤inline修饰的函数叫做内联函数,编译时C++编译器会在调⽤的地⽅展开内联函数,这样调⽤内联函数就需要建⽴栈帧了,就可以提⾼效率**

2024-07-10 16:46:44 1171 11

python小课堂(一)

python

2024-11-22

空空如也

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

TA关注的人

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