- 博客(62)
- 收藏
- 关注
原创 数据结构-------算法
算法是描述解决问题的方法算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
2023-05-11 21:34:23
553
原创 数据结构绪论
数据类型是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。在C语言中,按照取值的不同,数据类型可分为两类:原子类型:是不可再分解的基本类型,包括整型、实型、字符型等结构类型:由若干各类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的。
2023-05-08 17:32:30
565
原创 项目-云备份
自动将本地计算机上指定的文件夹中需要备份的文件上传备份到服务器中,并且能够随时通过浏览器进行查看并且下载,其中下载过程中支持断点续传功能,而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储,节省磁盘空间。
2022-09-13 22:13:07
1084
原创 Linux线程
Linux线程什么是线程什么是线程线程就是进程的一条执行流,是CPU的调度的基本单位,,这个执行流在Linux下是通过pcb实现的,共享了进程的大部分资源。相比进程更加轻量化,所以线程也被称为轻量级进程。线程在进程内部运行的,是进程内部的一个控制序列。...............
2022-06-22 23:03:44
673
原创 其他的进程知识
进程是如何调度的首先保存进程的进程控制块,例如进程的状态,程序计数器,寄存器的值按照某种算法选取进程,将该进程的状态改为运行状态将CPU的执行权让给该进程,再将该进程的进程控制块中的信息以及寄存器的值恢复到对应的寄存器中,让进程从上次切换的点继续运行进程调度算法先到先服务调度算法:根据就绪队列的到达时间来服务,先到先服务,后面的进程不能抢占正在服务的进程。优点:公平公正,实现简单。缺点:平均等待时间变化很大,效率低最短作业优先调度算法:先执行进程执行时间短的进程,如果执行时间一样,再根据先
2022-05-17 15:36:11
195
原创 Linux——进程&线程
进程&线程什么是进程,什么是线程进程和线程的区别进程间通信方式什么是进程,什么是线程进程:进程是一个正在运行的程序,在操作系统角度讲,进程就是一个pcb,是操作系统对一个正在运行的程序的描述,通过这个描述实现对程序的调度管理,它在linux中是一个task_struct结构体。pcb是进程控制块:标识符、状态、优先级、程序计数器(及即将被执行的下一条指令地址)、上下文。线程:线程就是进程中的一条执行流,是cpu调度的基本单元,这个执行流在linux下是通过pcb实现的,共享了进程的大部分资源,
2022-05-05 22:07:14
681
原创 Linux——进程间通信
进程间通信进程间通信进程间通信的本质进程间通信的目如何可以做到进程间通信进程间通信分类管道什么是管道?匿名管道管道的特点管道的四种情况命名管道匿名管道和命名管道的区别System V共享内存共享内存建立的过程共享内存函数共享内存特点消息队列信号量POSIX进程间通信进程间通信的本质进程间通信的本质就是不同的进程可以看见同一份资源进程间通信的目数据传输:一个进程需要将它的数据发送给另外一个进程资源共享:多个进程之间共享相同的资源通知事件:一个进程需要向另外一个或者一组进程发送消息,通知发生
2022-05-04 22:51:59
522
原创 leetcode435——无重叠区间
无重叠区间题目描述:给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。示例1输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例2:输入: intervals = [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠
2022-04-28 16:19:54
168
原创 leetcode59——螺旋矩阵
螺旋矩阵题目描述:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。我们可以使用按层模拟进行,可以将矩阵看成若干层,首先填入矩阵最外层的元素,其次填入矩阵次外层的元素,直到填入矩阵最内层的元素。对于每层,从左上方开始以顺时针的顺序填入所有元素。假设当前层的左上角位于(top,left),右下角位于(bottom,right),按照如下顺序填入当前层的元素。从左到右填入上侧元素,依次为(top,left) 到 (to
2022-04-27 22:50:55
336
原创 leetcode48——旋转图像
旋转图像题目描述:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度要求:你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。辅助矩阵我们通过分析示例可以看出,转换后的矩阵和转换前的矩阵有如下关系我们可以得出对于矩阵中第i行j列的元素,在旋转后出现在倒数第i列第j行的位置,我们可以得到如下关系。matrix_new[j][n - i - 1] = matrix[i][j];所以我们可以使用一个
2022-04-27 22:36:37
816
原创 Linux进程控制
进程控制一、进程控制1.1、fork函数1.2 写时拷贝二、进程终止2.1进程退出场景2.2进程退出方法正常终止:异常退出:return 退出三、进程等待3.1 进程等待的必要性3.2 进程等待的方法wait方法waitpid方法调用wait/waitpid后三种情况一、进程控制1.1、fork函数在linux中fork函数就是在已存在的进程中创建一个新进程。新进程为子进程,原进程为父进程。重点:fork函数的返回值为0代表的是子进程,大于0代表的是父进程,小于0代表的是创建子进程失败。在进
2022-04-23 21:10:35
103
原创 Linux进程概念
进程概念进程概念什么是进程?进程控制块:pcb如何理解创建进程?如何理解退出进程?pcb-结构体内容分类:查看进程通过系统目录查看通过ps命令查看进程状态R运行状态S睡眠状态D磁盘休眠状态(深度睡眠)T停止状态X死亡状态Z(zombie)-僵尸进程孤儿进程进程优先级什么是优先级优先级存在的原因进程概念什么是进程?进程就是一个正在运行的程序,在操作系统角度讲,进程就是一个pcb,是操作系统对一个正在运行的程序的描述,通过这个描述实现对程序的调度管理,在linux中是一个task_struct结构体。(只
2022-04-20 18:27:39
1362
原创 C++智能指针
智能指针一、内存泄漏1.1什么是内存泄漏,内存泄漏的危害1.2内存泄漏类型1.3 内存泄漏的原因二、智能指针的使用原理2.1 SmartPtr2.2 std::auto_ptr2.3 std::unique_ptr2.4 shared_ptr三、总结:四种智能指针的实现原理智能指针也是指针的一种,主要功能是将管理的资源能被对象访问,但是不会产生内存泄漏的问题。一、内存泄漏1.1什么是内存泄漏,内存泄漏的危害什么是内存泄漏内存泄漏就是因为守护造成程序未能释放已经不再使用的内存的情况。内存泄漏并不
2022-04-19 21:34:36
691
原创 C++11——右值引用和移动语义
文章目录一、左值1.1、什么是左值?什么是左值引用?二、右值2.1 什么是右值?什么是右值引用三、左值引用和右值引用的比较3.1 左值引用总结一、左值1.1、什么是左值?什么是左值引用?一般请何况:左值是一个表示数据的表达式(如变量名或解引用的指针),我们可以获取它的地址+可以对它赋值,左值可以出现赋值符号的左边,右值不能出现在赋值符号左边。特殊请何况:定义时const修饰符后的左值,不能给他赋值,但是可以取它的地址。左值引用就是给左值的引用,给左值取别名。代码如下:int main()
2022-04-16 23:04:58
632
原创 简化版高并发内存池
简化版高并发内存池是基于Google 的一个开源项目TCMalloc,TCMalloc 是 Google 开发的内存分配器,全称为Thread-Caching-Malloc,即线程缓存的malloc,实现高效的多线程内存管理。
2022-04-09 20:39:05
634
原创 栈和队列OJ题
用队列实现栈**题目描述:**请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。思路:我们可以使用两个队列,一个队列当作存储栈的主队列,另外一个作为辅助队列,用来帮助主队列实现栈的功能。class MyStack {public: queue<int> queue1; queue<int> queue2; /** Initialize your data structure h
2022-04-04 18:04:10
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人