自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】软硬链接与动静态库(理解软硬链接的特点及使用场景、如何建立动静态库与使用第三方库)

静态库和动态库是计算机程序开发中两种不同的库类型,它们都是预先编译好的二进制代码集合,用于提供可重用的功能模块给其他程序调用。静态库在链接阶段会被完整地加入到最终生成的可执行文件中。当编译器在创建一个程序时,如果程序引用了静态库中的函数或对象,那么静态库中的相关代码会被复制并整合到该程序内部。因此,静态链接后的可执行文件包含了程序运行所需的所有库代码,不需要在运行时依赖外部文件。静态库常见的扩展名有 `.a`(Unix/Linux 系统)或 `.lib`(Windows 系统)。

2024-04-20 16:26:30 870 2

原创 【C++】priority_queue(优先级队列介绍、仿函数控制大堆小堆、模拟实现)

优先级队列(Priority Queue)是一种特殊的数据结构,其并不满足队列先进先出的原则,它结合了队列和堆的特点,允许我们在其中插入元素,并且能够保证任何时候提取出的元素都是当前队列中具有最高(或最低)优先级的元素。在优先级队列中,每个元素都有一个关联的优先级值,这个值通常用于决定元素在队列中的相对位置。基本特性:插入(Enqueue):可以向优先级队列中添加元素,新元素会被放置在正确的位置以保持队列的优先级特性。删除(Dequeue/Peek)

2024-04-18 19:21:56 1006 3

原创 【C++】stack与queue(相关接口介绍、容器适配器、deque、模拟实现)

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

2024-04-17 11:11:12 1007 2

原创 Linux-文件系统理解(磁盘的物理与逻辑结构、什么是inode、OS如何管理磁盘)

磁盘的物理结构、磁盘的存储结构、了解inode与文件系统

2024-04-14 15:28:12 1629 5

原创 [STL-list]介绍、与vector的对比、模拟实现的迭代器问题

本文介绍了list常用接口,与vector的比较、迭代器问题以及完整模拟实现代码

2024-04-08 12:27:42 1399 15

原创 [Linux]基础IO(中)---理解重定向与系统调用dup2的使用、缓冲区的意义

在上述代码中,我们先关闭了下标为1的文件,在操作系统中该文件对应的是标准输出(显示器),而我们打开文件后,会将下标1作为该文件的描述符,printf函数的作用就是向下标为1的文件中写入信息,但是此时下标1对应的不在是标准输出了,对应的是我们打开的文件,但是上层仍认为1号下标对应的就是显示器,所以向1号下标文件写入就相当于向文件写入,而这个现象就称之为。在Linux下,当打开一个文件时,进程会遍历文件描述符表,找到当前没有被使用的 最小的一个下标,作为新的文件描述符。3.全刷新:当缓冲区写满才刷新。

2024-04-02 21:28:40 822 7

原创 [Linux]基础IO(上)--理解文件系统调用、文件描述符、万物皆文件

文件系统调用接口介绍、如何理解文件描述符、理解Linux下万物皆文件、理解语言级别的文件操作本质

2024-03-30 08:15:00 1285 29

原创 进程程序替换

使用fork函数创建子进程,子进程与父进程是共享代码与数据的,此时子进程运行的程序与父进程是相同的(但有可能是不同的分支),如果想让子进程运行自己的独立的程序就需要用到 exec函数执行新的程序。 当一个进程被创建时,操作系统会为其创建进程控制块PCB、地址空间并通过页表将虚拟地址映射到物理内存,而exec系列函数的进程替换原理就是将进程中的代码与数据替换为新的代码和数据,并将页表重新映射,此过程没有创建新的进程,所以exec系列函数调用前后进程pid并未发生改变以exec开头的函数一共有六

2024-03-27 09:15:00 717 3

原创 Linux-进程控制(进程创建、进程终止、进程等待)

在命令行下我们可以通过./ + exe文件来创建一个进程,通过fork函数,我们可以通过代码的形式从一个进程中创建一个进程,新进程为子进程,原进程为父进程,子进程在创建时,会与父进程共享下面的代码与数据,当数据被修改时,会采用写实拷贝的方式保证进程间的独立性。//头文件//函数//返回值#子进程中返回0#父进程返回子进程id#出错返回-1进程调用fork,当控制转移到内核中的fork代码后,内核做:分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程。

2024-03-25 13:29:28 1334 3

原创 初识进程的地址空间、页表

当我们在写C语言程序时,比方说要使用堆空间,可以利用malloc函数开辟好,但是可能代码跑了很长时间后才会使用这段空间,那这段时间别的进程就无法利用这段空间了,会造成空间的浪费,有了虚拟地址和页表的概念,当进程需要开辟空间时,操作系统只需要将虚拟地址填入页表,但并不构建映射关系,当进程需要使用这段空间时,操作系统才会在物理内存开辟好空间,再构建映射关系,这样就可以大大提高空间的利用率。g_val时,由于父子进程对g_val映射到相同的物理地址,父进程中的g_val也会随之修改,但是为了满足。

2024-03-24 08:15:00 1153 6

原创 如何理解 Linux 命令行参数与环境变量7

在写C语言程序时,main函数是否可以带参数呢?------ 是可以的。

2024-03-21 09:00:00 1205 19

原创 Linux进程优先级

优先级是指定进程获取某种资源的先后顺序cpu资源分配的先后顺序,就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能1.2 Linux下的优先级在Linux操作系统中,进程优先级的信息储存在进程控制块task_struct中,在其内部字段中存储着一个整型值。

2024-03-19 20:02:33 928 5

原创 STL---Vector常用接口介绍及模拟实现

本文介绍了vector的常用接口,并且讲解了会导致vector迭代器失效的问题,最后自己模拟实现一个简单的vector

2024-03-18 14:59:22 922 1

原创 [C/C++]string类常用接口介绍及模拟实现string类

在C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。也就是说C++中的string类是一个泛型类,由模板而实例化的一个标准类,本质上不是一个标准数据类型。string(const string&s) (重点)string(const char* s) (重点)string() (重点)resize (重点)empty (重点)

2024-03-10 22:05:20 1036 37

原创 Linux调试器-gdb使用

本文介绍了gdb常用的基本指令,防止忘记建议收藏观看

2024-02-24 14:59:32 604 15

原创 C/C++内存管理

new/delete 和 malloc/free最大区别是 new/delete对于自定义类型除了开空间还会调用构造函数和析构函数class Apublic:: _a(a)~A()private:int _a;return 0;四. operator new与operator delete函数(重要点进行讲解)4.1 operator new与operator delete函数(重点)new和delete是用户进行动态内存申请和释放的。

2024-02-21 16:37:59 1087 14

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

回顾默认构造函数,并讲解初始化列表的功能,以及讲述static成员、友元函数、友元类、内部类与匿名对象

2024-02-07 13:43:47 1268 19

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

详细解答C++类和对象的构造函数、析构函数、拷贝构造函数、运算符重载和赋值重载

2024-02-02 17:12:12 1771 25

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

在C语言中,struct结构体内部只能定义变量,而C++兼容C语言,结构体内部不仅可以定义变量,还可以定义函数,例如:而在C++中,更喜欢把struct替换为class来定义// 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。

2024-01-31 08:34:14 1645 89

原创 [Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法

Vim是一个类似于Vi的文本编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面,如多级撤销、多窗口操作、崩溃后也可以恢复、增加了稳定性、关键字自动补全、上下文自动补全等。这篇文章我们重点介绍vim的三种模式(vim不止有三种模式欧,这三种模式只是最常用的命令模式(command mode)底行模式(last line mode)插入模式(insert mode)想要查看当前vim的所有模式可以在底行模式下输入。

2024-01-26 09:45:00 1544 50

原创 常用排序算法总结(直接插入排序、选择排序、冒泡排序、堆排序、快速排序、希尔排序、归并排序)

本篇文章总结了直接插入排序、选择排序、冒泡排序、堆排序、快速排序、希尔排序、归并排序,包括其实现思路、特点、代码等

2024-01-20 16:35:42 1964 61

原创 C++入门(详细解读,建议收藏)

++是基于C语言而产的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。

2024-01-06 21:27:46 1574 93

原创 [排序算法] 如何解决快速排序特殊情况效率低的问题------三路划分

三路划分顾名思义就是通过处理将数据分为三个部分 [小于特定值的部分 等于特定值的部分 大于特定值的部分] ,这样划分好后,只需要对小于特定值的部分和大于特定值的部分进行递归排序即可,中间的数据就不需要处理了,相比于上述三种方法效率提升很大,并且重复数据越多排序效率越快,当带排序数据全为重复数据时,时间复杂度甚至可以达到O(N)。

2024-01-04 14:01:06 771 7

原创 Linux权限的基本理解

权限就是通过一部分条件,可以拦截住一部分人,给另一部分人权力访问资源,并且权限不仅和人有关,还和事务的属性有关,比如我们不能在视频软件上打游戏,所以权限和人与事务的属性有关。

2023-12-31 09:00:00 1553 37

原创 [排序算法]:归并排序(Merge Sort)(递归与非递归实现详解)

归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。

2023-12-28 10:44:04 792 15

原创 [C/C++]排序算法 快速排序 (递归与非递归)

将数组第一个元素定为关键值,定义两个指针prev和cur,先让prev指向数组的第一个元素,cur指向prev的下一个元素,cur的作用是找比关键值小的元素,若cur所指元素不小于关键值则cur++,直到cur所值元素小于关键值,此时,prev和cur之间的元素都是大于关键值的元素,若prev+1不是cur的话就可以让prev++所指元素与cur所指元素交换了,直到cur指向数组的最后一个元素。此时,关键值又把区间分为了两个区间,右区间只有一个值,没必要入栈排序,只需要将左区间边界1 0入栈。

2023-12-27 16:48:42 2080 25

原创 [C/C++]数据结构 希尔排序

希尔排序也称 “缩小增量排序”,它也是一种插入类排序的方法,在学习希尔排序之前我们首先了解一下直接插入排序.

2023-12-25 22:25:32 549 5

原创 [C/C++]数据结构: 链式二叉树的构建及遍历

二叉树是指树中节点的度不大于2的有序树,它是一种最简单且重要的树,二叉树的递归定义为:二叉树是一颗空树,或者是一颗由一个根节点和两颗互不相交的,分别称为跟的左孩子和右孩子树组成的非空树,其中左子树和右子树都是二叉树.

2023-12-24 16:41:48 587 2

原创 [C/C++]数据结构 关于二叉树的OJ题(利用分治思想解决难题)

单值二叉树 相同的树

2023-12-03 22:28:32 449 5

原创 [Linux] Linux入门必备的基本指令

ls [选项] [目录或文件]对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

2023-11-28 18:22:01 1341 35

原创 [C/C++]用堆实现TopK算法

用堆实现TopK问题

2023-11-28 08:00:00 111 4

原创 [C/C++]数据结构 堆排序(详细图解)

1.首先将待排序数组建为大堆,此时堆顶元素就为数组最大值了2.交换堆顶和堆尾元素,此时最大元素就到了堆尾,目前数组最大元素就排好了,现在就假设堆里没有当前这个最大元素了,堆头下面的左右子树仍然是大堆,只需要再将堆顶元素向下调整到合适位置,剩下的n-1个元素还是大堆3.堆头堆尾交换,向下调整,如此反复就可排序。

2023-11-27 11:32:10 460 2

原创 [C/C++]数据结构 堆的详解

堆是一个完全二叉树,但是其物理逻辑为数组int size;//数组容量}HP;//堆的初始化//在堆上入一个数据使其还是堆//在堆上出一个数据使其还是堆//取堆头元素//判断堆是否为空//求堆的长度//堆的销毁。

2023-11-27 07:00:00 234 2

原创 [C/C++]数据结构 循环队列

front用于维护队头,指向队头元素位置,back用于维护队尾,总是指向队尾元素的下一个位置,k表示队列实际存数据的长度ps:循环队列的长度是固定的。

2023-11-24 18:01:24 573 2

原创 [C/C++]数据结构 LeetCode:用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):实现MyQueueint pop()int peek()truefalsesizeis empty现在我们有两个栈,假设在第一个栈中依次入栈1 2 3 4 5,另一个为空栈现在要出队列的话,应该把1出队,所以需要把除了栈底元素的其他元素出栈并且入到第二个栈里,这时就可以将1出队,但是将数据导入另一个栈时,数据会倒过来如果要再次出队列的话,应该把2出队,就不需要把数据导一次了,直接栈顶出栈即可.

2023-11-19 21:05:19 660

原创 [C/C++] 数据结构 LeetCode:用队列实现栈

现在要出栈的话,应该把5出去,但是数据目前在队列里,出数据只能从队头出,所以可以把1 2 3 4依次出队列,并入到第二个队列中,此时就可以把5出去了,此时又是一个队列为空,另一个存着剩余的数据,再出栈的话,还按照这个方法即可。出栈操作相当于非空队列的队尾元素出队,此时需要把非空队列除最后一个元素之外的其他元素入队到空队列,然后出队最后一个队尾元素。现在我们有两个队列,假设在第一个队列里依次入了1 2 3 4 5,另一个队列为空队列。入栈操作相当于在非空队列进行入队操作。即返回非空队列队尾元素。

2023-11-19 19:36:50 581

原创 [C/C++]数据结构 栈和队列

是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为,另一端称为,栈中的数据元素遵守的原则.

2023-11-18 13:57:36 1096

原创 [C/C++]数据结构 链表(单向链表,双向链表)

实现无头单向不循环链表和带头双向循环链表的各种常用接口

2023-11-18 12:24:36 751

原创 [C/C++]数据结构----顺序表的实现(增删查改)

由于静态顺序表只适用于确定知道需要多少数据的场景,如果静态顺序表的定长数组N定大了,就会造成空间浪费,如果N定小了, 空间又不够用.所以现实中通常都是使用动态顺序表,按需开辟空间.如果传过来的顺序表本身就是空指针,说明顺序表就不存在,不需要进行其他操作.若指针不为空,就把其定长数组指向空,把有效数据个数和容量赋值为0。在进行操作前,先断言一下传过来的指针是否为空,若为空则会在终端提示错误信息,要注意使用asssert(),需要包含头文件assert.h。同样先检查指针是否为空,在遍历顺序表进行打印。

2023-11-16 20:19:56 317

原创 [C/C++]数据结构 链表OJ题:随机链表的复制

原链表第一个结点的random指向了原链表中的第五个结点,那我们就让我们创建的新链表中的第一个结点的random指向先链表中的第五个结点,以此类推,这样就可以解决新链表的random指向问题,但是这样处理每个结点的random都需要遍历一次原链表和新链表,时间复杂度达到了O(n^2),思路1是直接复制了一个新链表,而处理新链表的random并不能让其指向原链表的结点.只能指向自己创建的结点,这样就只能靠random指向的结点在原链表中的位置处理新结点的random指向.你的代码只接受原链表的头节点。

2023-11-16 09:55:57 219 2

算法和数据结构练习(Leetcode).zip

算法和数据结构练习(Leetcode)

2024-01-05

算法和数据结构体系学习班.zip

算法和数据结构体系学习班

2024-01-05

算法和数据结构——左程云.zip

算法和数据结构——左程云

2024-01-05

数据库工具,根据表结构文档生成创建表sql.zip

数据库工具,根据表结构文档生成创建表sql,根据数据库表信息导出Model和表结构文档,根据文档生成数据库表,根据已有Model文件生成创建数据库表sql

2024-01-05

数据结构与算法源代码.zip

数据结构与算法源代码

2024-01-05

数据结构在线模拟器.zip

数据结构在线模拟器

2024-01-05

算法和数据结构.zip

算法和数据结构

2024-01-05

数据结构学习笔记.zip

数据结构学习笔记

2024-01-05

数据结构与算法:C语言描述.zip

数据结构与算法:C语言描述

2024-01-05

数据结构与算法 by golang.zip

数据结构与算法 by golang

2024-01-05

数据结构相关Swift示例,相关博客地址:.zip

数据结构相关Swift示例,相关博客地址:

2024-01-05

数据结构课设,航空客运订票系统.zip

数据结构课设,航空客运订票系统

2024-01-05

数据结构示例程序(C#语言描述).zip

数据结构示例程序(C#语言描述)

2024-01-05

数据结构 浙大MOOC.zip

数据结构 浙大MOOC

2024-01-05

前端总结、手写代码、数据结构与算法 Leetcode、源码解析.zip

前端总结、手写代码、数据结构与算法 Leetcode、源码解析

2024-01-05

利用情感语义分析和张量数据结构预测股价.zip

利用情感语义分析和张量数据结构预测股价

2024-01-05

前端基础,深入以及算法数据结构.zip

前端基础,深入以及算法数据结构

2024-01-05

简单数据结构实现.zip

简单数据结构实现

2024-01-05

基于java语言的数据结构及算法实现,LeetCode算法示例.zip

基于java语言的数据结构及算法实现,LeetCode算法示例

2024-01-05

基于scrapy的层次优先队列方法爬取中文维基百科,并自动抽取结构和半结构数据.zip

基于scrapy的层次优先队列方法爬取中文维基百科,并自动抽取结构和半结构数据

2024-01-05

贪吃蛇游戏(C语言实现)

该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win32API实现贪吃蛇的基本功能,包括源代码该资源详细描述了如何利用C语言和win3

2024-01-13

算法与数据结构等 - 知识荟萃 「长期更新中」【欢迎 watch,有兴趣点个 star,千万别 fork !】.zip

算法与数据结构等 - 知识荟萃 「长期更新中」【欢迎 watch,有兴趣点个 star,千万别 fork !】

2024-01-05

算法和数据结构学习笔记.zip

算法和数据结构学习笔记

2024-01-05

算法和数据结构新手班.zip

算法和数据结构新手班

2024-01-05

数据结构与算法分析 Java语言描述 习题解答.zip

数据结构与算法分析 Java语言描述 习题解答

2024-01-05

数据结构与算法分析:C语言描述第二版课后习题答案及代码.zip

数据结构与算法分析:C语言描述第二版课后习题答案及代码

2024-01-05

数据结构与算法分析(Python实现).zip

数据结构与算法分析(Python实现)

2024-01-05

数据结构与算法.zip

数据结构与算法

2024-01-05

数据结构与算法javascript学习代码实现.zip

数据结构与算法javascript学习代码实现

2024-01-05

数据结构和算法专项训练营。.zip

数据结构和算法专项训练营。

2024-01-05

数据结构和算法必知必会的50个代码实现.zip

数据结构和算法必知必会的50个代码实现

2024-01-05

数据结构和算法.zip

数据结构和算法

2024-01-05

数据结构练习记录.zip

数据结构练习记录

2024-01-05

数据结构(C语言描述)学习笔记.zip

数据结构(C语言描述)学习笔记

2024-01-05

数据结构和算法(精选).zip

数据结构和算法(精选)

2024-01-05

数据结构.zip

数据结构

2024-01-05

农业领域知识图谱的构建,包括数据爬取(百度百科)、数据分类.zip

农业领域知识图谱的构建,包括数据爬取(百度百科)、数据分类、利用结构化数据生成三元组、非结构化数据的分句(LTP),分词(jieba),命名实体识别(LTP)、基于依存句法分析(主谓关系等)的关系抽取和利用neo4j生成可视化知识图谱

2024-01-05

简洁好用的数据库表结构文档生成器.zip

简洁好用的数据库表结构文档生成器

2024-01-05

结构化数据存储系统的面向对象封装.zip

结构化数据存储系统的面向对象封装

2024-01-05

经典编程书籍大全,涵盖:计算机系统与网络.zip

经典编程书籍大全,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试等

2024-01-05

空空如也

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

TA关注的人

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