自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】匿名管道pipe和有名管道fifo详解

进程间通信IPC进程间通信是操作系统提供的一种机制,用于多个进程之间进行数据通信,实现资源协调与共享。IPC:Interprocess Communication 进程间通信例如在单任务处理器中,多个进程之间就依靠着进程间通信 调度CPU,使得多个进程高效率并发执行Linux中进程间通信的方式:管道:半双工通信方式,分为匿名管道(pipe)和有名管道(fifo),用于具有亲缘关系之间的进程通信消息队列:进程利用消息队列通过发送和接收消息进行通信信号:主要用于消息的通知和进程控制,不能传

2024-01-31 15:58:54 1408

原创 【Linux】wait()和waitpid()函数

在Linux或Unix系统中,子进程只能由父进程进行回收。如果进程结束但是进程资源仍未被回收,这个进程将会变为僵尸进程,会导致内存泄漏和系统性能下降。使用getchar() 阻塞父进程的执行,子进程结束后父进程未对其进行回收

2024-01-30 11:11:53 884 2

原创 【Linux】fork()函数

操作系统给用户提供了一系列的函数接口,让用户进行与进程有关的编程。一、fork()函数fork()函数用于创建一个子进程,调用fork()函数的是父进程该子进程与父进程几乎完全相同,父子进程的代码共享,但是他们的进程id(PID)不同。fork()函数拥有两个返回值:父进程的fork()函数返回子进程的pid子进程的fork()函数返回0父进程进行代码的全部,子进程执行从fork()函数后的代码,父子进程同时执行fork()函数的使用举例:

2024-01-29 18:30:02 1054

原创 【Linux】进程概述

进程在不同角度下可以有不同的定义:进程是进程实体的运行过程。进程是系统进行资源分配和调度的一个单位,是一个任务执行的逻辑单元。在早期计算机的结构中,进程是一个程序及其数据在处理机上顺序执行时所发生的活动。在当代计算机结构中,进程与程序显然是截然不同的概念,程序与进程没有必然联系在进程执行时如果没有数据往来,程序文件被删除甚至都不会影响进程的运行。进程拥有程序所没有的特征:二、进程的特征1.动态性:进程的实质是进程实体的执行过程,它是有生命的,具有各种状态。2.并发性:指多个进程

2024-01-26 14:21:30 1110

原创 【算法】如何不用中间变量交换两个数据?

一、+ - -使用+ 和-完成交换: a = a + b; //a = a + b组合 b = a - b; //b = 组合 - b = 原始a a = a - b; //a = 组合值 - 原始a = b首先,通过加法将两个变量的值组合在一起,然后减去b来获得a的原始值,将原始的a值赋值给b最后再减去新b就能获取到b的原始值,将原始的b赋给a,此时a和b就完成了交换同理乘除等运算也可以注意数据相加可能溢出二、^使用异或^进行交换: a = a^b;

2024-01-15 20:41:38 507

原创 【LeetCode刷题笔记】344.反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须[原地]修改输入数组、使用 O(1) 的额外空间解决这一问题。二、示例示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]三、题目分析使用双指针的思想,令一个指针指向字符串

2024-01-05 20:31:38 976

原创 【计算机网络】TCP心跳机制、TCP粘包问题

一、心跳机制在长连接下,可能有很长一段时间没有数据往来,为了保持长连接存活,存在心跳机制即每隔几分钟就发送一个固定信息给服务端,服务端收到后也回复一个固定信息,以表示连接仍然有效同时 心跳机制还可以用于检测连接是否断开或出现故障但是 心跳机制会增加网络流量二、粘包问题由于TCP是基于字节流传输,没有边界,可以合并,合并拆不开就是粘包(UDP没有这个问题,因为UDP每个消息都有明确的边界)解决办法:1.设置标志位(开始/结束)在数据包中的开始和结束位置添加标志位,对端收到数据

2023-12-21 15:08:25 929

原创 【LeetCode刷题笔记】155.最小栈

题目链接LeetCode 155.最小栈一、题目描述设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。二、示例示例 1:输入:[ “MinStack”,“push”,“push”,“pus

2023-12-17 11:00:26 1696 1

原创 【算法】哈希表介绍 | 哈希表的链式地址法代码实现(C/C++)

哈希表(HashMap、unordered_map)又称为散列表,是一种可以对已经存储的数据进行快速查找的数据结构,它可以根据键(Key)值直接进行访问。举几个栗子:在电话簿中,每个电话号码对应一个名字,在查找某个人的电话号码时根据姓名即可进行快速查找,这实际上就利用了哈希思想,键是电话号码,值是名字。如果要对某字符串进行反复搜索的操作,每次都遍历字符串效率太低,使用哈希思想将字符进行分组(例如分为256组),然后将每个字符按照规则存储(将字符串中的每个字符通过哈希函数进行映射),在后续对字符查找

2023-12-17 10:27:10 2321

原创 【LeetCode刷题笔记】103. 二叉树的锯齿形层序遍历

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。锯齿形层序遍历的解法基于普通的层序遍历基础上:二叉树的层序遍历:使用队列将每层节点入队,再根据该层数量(queue.size())控制遍历锯齿形层序遍历就是对层序遍历再多加个约束条件:一层正常遍历,一层将遍历后的结果插入到上个数据前面(反方向遍历实现方法:将数据从队列弹出后,每次添加到结果数组中,添加的位置在前 就实现了从右向左输出)

2023-12-02 13:36:13 539

原创 【LeetCode刷题笔记】102. 二叉树的层序遍历

题目描述给你二叉树的根节点root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。要按照每层向下遍历,就需要知道每层节点的数量(用于控制每次输出几个数据再进入下一层)与深度遍历不同的是,在左子树遍历时,需要记住当前层的右子树仍未遍历。难点在于控制左右子树非兄弟节点也按层输出(例如下图中的6、12、15、7需要在同一层输出,而深入9遍历6和12的时候,15和7就不会被遍历到)问题转化为如何保存同层仍未遍历的节点或者说 遍历同层节点时,如何保存同层非兄弟节点的孩子节点如果

2023-12-02 09:03:19 1144

原创 【LeetCode刷题笔记】160.相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的 起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目分析对链表的题目大多可以使用指针迭代进行解决,链表不允许被破坏,使用双指针对链表进行遍历。A和B可以看作为两条链表,先使用p1指针从A链表开始遍历,再使用p2指针从B链表开始遍历,哪个指针先遍历到链表结尾,就代表哪个链表更长。使用长链表的长度减去短链表的长度为这两条链表长度差,再利用长链表指针先出发这个长度差后,短

2023-11-29 16:03:02 1301 1

原创 【Linux】Linux常用命令—磁盘管理、压缩包管理

磁盘管理mount格式: mount [-t vfstype] –o options 设备 挂载点-t vfstype: 指定文件系统的类型,通常不用指定,mount会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntfsmount windows文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs-o optio

2023-11-10 16:19:33 212 1

原创 【Linux】Linux常用命令—用户管理

whoamichmodchownuseraddpasswdsuuserdelapt-get、deb包安装、源码安装whoami格式: whoami功能:查看当前登陆的是哪个用户chown chown 用户:用户组 文件名功能:更改文件/目录的所有者(用户或用户组)root用户把自己的一个文件拷贝给某个用户,为了让用户能够存取这个文件,root用户应该把这个文件的属主设为该用户否则,该用户无法存取这个文件。举例:先使用su命令切换root用户将aa文件改

2023-11-10 15:57:24 223

原创 【算法设计】回溯法算法设计——骑士游历问题(C++实现)

骑士游历问题问题描述在国际象棋的棋盘(8行×8列)上放置一个马,按照“马走日字”的规则,马要遍历棋盘,即到达棋盘上的每一格,并且每格只到达一次。若给定起始位置(x0,y0),编程探索出一条路径,沿着这条路径马能遍历棋盘上的所有单元格算法思想和解题思路马从棋盘上的某一初始位置(x0,y0)开始,每次选择一个方向k,向前走一格,直到走完64格为止。每走一格,设置数组中相应格的元素值为马走的步数。如果选择的方向k=0,表示可能的8种走向都试探不通,不通的原因是走向超出了棋盘范围,或当前位置已经被

2023-11-09 19:59:54 1231 1

原创 【算法设计】贪心算法设计——均分纸牌、线段覆盖问题(C++实现)

有N堆纸牌,编号分别为1,2,…,n。每堆上有若干张,但纸牌总数必为n的倍数。可以在任一堆上取若干张纸牌,然后移动在一维空间中存在N条线段,每条线段的起始坐标与终止坐标已知,要求求出这些线段一共覆盖了多大的长度。L1 L2 L3 L4 L5 L6 L7 L8 L9 移牌的规则为:在编号为1上取的纸牌,只能移到编号为2的堆上;在编号为n的堆上取的纸牌,只能移到编号为n-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。

2023-10-26 17:31:27 1264 1

原创 【算法设计】动态规划算法设计——天平平衡、数塔问题(C++实现)

天平平衡:已知一个天平左右两端共有n个挂钩,且有m个不同质量的钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。试设计求解该问题的动态规划算法。数塔问题问题描述对于诸如下图的数塔,若从顶层走到底层,每一步只能走到相邻的结点,求经过的结点的数字之和最大的路径,试设计求解该问题的动态规划算法。算法思想和解题思路m个钩码要么挂在左边,要么挂在右边,使得左右平衡,也就是说使得左右两边的钩码重量之和相等左边或者右边的钩码重量之和是全部钩码重量之后的二分之一,天平的两端的重量和为m从给定的数字数组中选择

2023-10-25 15:30:39 1314

原创 【算法设计】递归与分治算法设计——二分搜索、假币识别问题(C++实现)

算法分析与设计——二分搜索和假币识别问题:设a[0:n-1]是已排好序的数组。试改写二分搜索算法,使得当搜索元素x不在数组a中时,返回小于的最大元素的位置i和大于x的最小元素的位置j当搜索元素x在数组a中时,返回x在数组中的位置,此时i和j相同。一个袋子里有n个硬币,其中一枚是假币,假币和真币外观一模一样,仅凭肉眼无法区分,但是已知假币比真币轻一些。试设计识别假币的分治算法算法思想和解题思路先将有序数组分成两部分,中间位置mid为基准值若该值等于目标值key,则直接返回若该值大于目标值,则在左半部

2023-10-23 17:26:58 824

原创 【vscode下载安装】只需简单一步——使用镜像解决vscode下载慢、失败的问题

vscode下载链接vscode官网下载:https://code.visualstudio.com但是下载速度非常慢,还容易下载失败:在这里插入图片描述vscode下载慢、失败的解决方法:打开下载内容,复制下载链接在这里插入图片描述粘贴到网址栏:在这里插入图片描述然后复制vscode.cdn.azure.cn将以下内容外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传替换为:![外链图片转存失败,源站可能有防盗链机制

2023-10-18 18:37:59 1264 1

原创 【Linux】详解Linux中的Makefile文件

Makefile文件是Linux中用于编译和链接的自动化工具,是GNU工具(vi、gdb、makefile)的一部分。为什么需要编写Makefile文件程序的生成过程分为:编译期(源文件.c编译生成.o文件)和链接期(把所有.o文件链接生成可执行文件)。如果程序更新,下次生成可执行文件会对所有文件再次执行这个生成过程。因此需要Makefile文件,在修改源文件后,只编译修改后的文件,节省编译时间。Makefile的执行原理程序第一次编译时,会保存所有生成的中间文件.o文件,下次编译时只编译修改的

2023-10-16 19:55:48 873

原创 【Linux】Linux常用命令—文件管理(下)

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共mvcpmore、lesshead、taillnoddudffindgrepmv格式: mv 文件名 已存在的文件夹 mv 文件(夹)旧名 文件(夹)新名功能:1.mv文件至已存在文件夹,移动文件2.重命名(如果目标文件已存在,文件覆盖)举例:在这里插入图片描述cp cp 原文件名 新文件名功能:拷贝文件 cp 原文件夹名 新文件夹名 -r功能:拷贝文件夹 cp 原文件夹名 已存在文同进步!

2023-10-05 11:00:00 473

原创 【Linux】Linux常用命令—文件管理(上)

终端是一种让用户与系统交互的方式,用户通过终端输入命令,系统通过终端输出结果根目录下的文件夹二、文件命令lscdpwdcatechomkdirrmdirtouch1.创建文件夹(通过空格分隔可以一次创建多个)2.创建有所属关系的文件夹:使用/ 代表文件夹1中包含文件夹2, 其中-p为自动建立好尚不存在的目录

2023-10-04 16:26:21 285

原创 【计算机网络】详解TCP协议(下) 滑动窗口 | 流量控制 | 拥塞控制

一、滑动窗口1.窗口窗口是一段被发送者发送的连续的字节序列发送多少数据之后进行累计应答,由窗口决定窗口大小指⽆需等待确认应答,⽽可以继续发送数据的最⼤值窗⼝的⼤⼩通常由接收⽅的窗⼝⼤⼩来决定。发送⽅发送的数据⼤⼩不能超过接收⽅的窗⼝⼤⼩,否则接收⽅就⽆法正常接收到数据。滑动窗口是一个大小可变的窗口,左右两端方向一致的向前滑动2.发送方的滑动窗口发送方的滑动窗口主要用于控制发送数据的流量窗口的大小由接收方决定,接收方通过TCP头部中的窗口大小字段来通知发送方目前还可以接收多少字

2023-10-02 10:45:00 2648

原创 【计算机网络】详解TCP协议(中) 三次握手与四次挥手

建立TCP连接——三次握手1.客户端和服务端都处于CLOSE状态2.服务端监听状态LISTEN3.客户端发起连接,发送一个随机数起始的seq SYN置为1,然后客户端处于SYN_SEND状态4.服务端收到seq包后,向客户端发送服务端初始的seq包,ack为客户端的seq+1,ACK置为1,然后服务端处于SYN_RCVD状态5.客户端收到服务端的seq包后,向服务端发送seq为客户端初始seq+1,ack为服务端seq+1的包,然后处于ESTABILSHED状态,服务端收到这个ack包后也处于EST

2023-09-26 10:45:00 314

原创 【计算机网络】详解TCP协议(上) TCP协议头结构 | ACK确认应答 | 超时重传机制

TCP 是⾯向连接的、可靠的、基于字节流的传输层通信协议1.⾯向连接的:⼀定是⼀对⼀才能连接,不能像 UDP 协议可以⼀个主机同时向多个主机发送消息,也就是⼀对多是⽆法做到的2.可靠的:⽆论的⽹络链路中出现了怎样的链路变化,TCP 都可以保证⼀个报⽂⼀定能够到达接收端。可靠有序,不丢不重往返时延RTT和超时重3.字节流:消息是没有边界的,所以⽆论我们消息有多⼤都可以进⾏传输。并且消息是有序的,当前⼀个消息没有收到的时候,即使它先收到了后⾯的字节,那么也不能扔给应⽤层去处理,同时对重复的报⽂会⾃动丢弃

2023-09-25 16:43:47 2048

原创 【计算机网络】IP数据报首部格式、最大传输单元MTU、最大分段大小MSS

固定部分版本:IP版本是IPv4还是IPv6首部长度:记录IP头的首部长度为多少,方便区分首部和数据部分区分服务:指期望获得哪种类型的服务总长度:IP数据包的总长度,包括首部+数据,单位是1B标识:网络传输中数据报被分为许多数据包,标识用来对IP数据包进行编号标志:标志是否分包片偏移:根据片偏移可以将分包拼成一个完整的包,像是拼积木的参考书生存时间 (TTL):IP包的保质期。有的包会在网络中迷路,经过一个路由器-1,变成0则丢弃—丢包协议:数据部分使用什么协议首部检

2023-09-20 17:59:58 1638

原创 【计算机网络】子网掩码、子网划分

子网掩码又叫网络掩码,地址掩码,子网络遮罩,就是把子网络遮起来,不让外界窥探到子网掩码是一个32位地址,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。1.选定的子网掩码将创建多少个子网?2^x个,其中x是子网掩码借用的主机位数。如:192.168.10.32/28,其中28是网络号。C类ip默认子网掩码位255.255.255.0,网络号为24位,故其借用了主机位4位来充当网络位,所以子网掩码是为了区分网段。 掩码和主机号与主机号比较来判断属不属于该网段

2023-09-19 17:17:22 2269 1

原创 【计算机网络】DNS域名解析协议

DNS(Domain Name System,域名系统),DNS服务器会将易于记忆的域名解析成计算机易于处理的IP地址例:输入一个域名时,DNS系统会进行查询,将该域名解析成对应的IP地址,进行网络通信如果没有就访问DNS根服务器,DNS根服务器告诉本地DNS服务器.net域然后本地DNS服务器再访问.com域服务器,DNS根服务器再告诉本地DNS服务器是.163.com域,再次访问.163.com域服务器寻找IP地址

2023-09-13 10:30:00 142

原创 【计算机网络】ARP协议的定义、实现过程 | ARP代理 | 免费ARP

ARP协议(地址解析协议)是根据IP获取MAC地址的一个TCP/IP协议在双端设备在通讯收发数据之前,如果不知道对端的MAC地址,就可以通过ARP协议来获取当一个设备需要与另一个设备通信时,需要知道对方的物理地址。它首先在自己的ARP缓存中查找目标IP地址对应的MAC地址,如果找到就直接通信如果没找到,设备就会发ARP协议的作用是在IP地址和MAC地址之间建立映射关系,方便设备进行通信ARP协议处于OSI七层中的数据链路层(TCP/IP中的网络层),上层协议是IP协议ARP报文格式:

2023-09-12 10:45:00 1626

原创 【计算机网络】UDP数据包是如何在网络中传输的?

发送方自顶向下:1.应用层:应用层添加控制信息:报文接收方自下向上解封装过程 与发送过程完全相反,自下而上逐层拆包还原添加帧头和帧尾帧头由目的MAC地址、源MAC地址组成,帧尾是CRC校验数据报组成帧 在头部和尾部添加控制信息,转成比特流,传输比特 放在链路上传输

2023-09-11 10:45:00 616

原创 【LeetCode刷题笔记】动态规划 — 70.爬楼梯

假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?三、题目分析根据题目一次1个或2个台阶,先考虑极端情况:只有一个台阶的情况和只有两个台阶的情况只有一个台阶:1种方法:爬1个台阶只有两个台阶:2种方法:爬两次1个台阶、爬一次2个台阶在两个台阶的问题中,第一种方法包含了只有一个台阶的情况(爬两次1个台阶:即爬了一个台阶,此时只剩下一个台阶,转化为了只有一个台阶的问题)三个台阶时,如果爬1个台阶,还剩2个台阶,转化为了2个台阶的问题

2023-09-11 08:50:00 241

原创 【算法】分治法的应用——快速排序

找到一个基准值x,将序列中小于x的元素放在左侧,将大于x的元素放在右侧,对左右两个子序列分别重复同样的操作,直至子序列的长度为1或0时结束步骤如下:选择基准,一般选择第一个元素作为基准,或者随机选择将数组划分为两个部分,小于等于基准点的元素在左边,大于基准点的元素在右边从数组的第二个元素开始遍历,如果当前元素小于基准,就交换它和第一个元素的位置。这样,所有小于基准的元素都在基准的左边,所有大于基准的元素都在基准的右边。然后对左右两个部分分别进行递归排序快速排序就是先将⼀个元素排好序,

2023-09-10 10:45:00 321

原创 【计算机网络】OSI七层网络模型概述及应用举例

应用层所有能和用户交互产生网络流量的程序(用户和网络的界面)例:http:超文本传输协议,用于从请求网页,在客户端浏览器中显示https:安全超文本传输协议,对传输的数据进行加密FTP:文件传输协议,用于在网络上传输文件DNS:域名解析协议,用于将域名转换为IP地址DHCP:动态分配IP地址SMTP:电子邮件传输协议SSH:安全进行远程登陆表示层用于处理在两个通信系统中交换信息的表达方式(通常语法和语义)例:数据加解密数据解压缩图片/视频编解码会话层向表示层实体/用

2023-09-09 10:30:00 811

原创 【C++】静态库lib和动态库dll的优缺点、使用方法

静态库lib优点静态库的运行效率高、速度快缺点动态库dll优点1.多个应用程序依赖一个动态库时,动态库只需要拷贝一份,节省内存空间2.更新、部署、发布简单1.多个应用程序依赖一个静态库时,静态库会存在多份,浪费内存空间2.更新、部署麻烦:修改静态库代码后,需要重新编译库文件以及整个可执行文件使用方法1.将头文件拷贝到当前项目中,添加头文件依赖#include "./xx.h"2.将库文件lib拷贝到当前项目中,添加库文件依赖#pragma comment(lib,"./xx.lib")

2023-09-08 16:06:33 1243

原创 【算法】分治法的应用——棋盘覆盖问题

在一个2k×2k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为特殊方格,且称该棋盘为特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中无特殊方格。为了将这3个无特殊方格的子棋盘转化为特殊棋盘,可以用一个L型骨牌覆盖这3个较小棋盘的会合处从而将原问题转化为4个较小规模的棋盘覆盖问题。递归地使用这种分割,直至棋盘简化为棋盘1×1

2023-09-05 10:15:00 3057 1

原创 【算法】分治法的基本思想和二分搜索的应用

分治法它的基本思想是将一个大问题分解成若干个与原问题相似的小问题,用相同的方法递归地解决这些小问题,最后将这些小问题的解合并起来,得到原问题的解决方案。分治法所能解决的问题一般具有以下特征:该问题的规模缩小到一定的程度就可以容易地解决。因为问题的计算复杂性一般是随着问题规模的增加而增加,因此大部分问题满足这个特征。该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。这条特征是应用分治法的前提,它也是大多数问题可以满足的,此特征反映了递归思想的应用。利用该问题分解出的子问

2023-09-04 16:55:58 1004

原创 C++全部基础知识汇总 全篇超3万字超详细!(干货笔记分享)零基础学C++这一篇就够了

C++ 是一门面向对象编程的语言,把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为,更注重的是程序的整体设计。2.c++输入输出3.小结三、命名空间与作用域1.作用域2.命名空间3.为什么需要using namespace std ?四、动态申请内存空间new-delete1.c语言动态申请内存空间2.new-delete3.new指针、new数组3. 总结五、bool布尔类型1.自制BOOL类型2.bool3.BO

2023-09-01 23:19:13 2648 7

原创 【算法】递归的概念、基本思想

递归是将一个问题分解成多个与原问题相似但规模更小的问题来解决,直到问题的规模变得足够小,可以直接求解。每个小问题解决之后,将子问题的解合并起来,最终得到原问题的解。递归分为两个步骤:递推、回归在递推阶段,问题被分解成规模更小的子问题,并递归地求解这些子问题。在回归阶段,子问题的解将被合并为原问题的解。递归总结递归的结构清晰,可读性强递归算法的运行效率较低,占用存储空间大,递归深度过深可能导致栈溢出被调用的局部变量需要分配存储区,保存计算结果

2023-09-01 22:33:50 3952

原创 【算法】函数渐近的界基础知识及定理

估计函数的阶的方法:计算极限阶具有传递性对数函数的阶低于幂函数的阶,多项 式函数的阶低于指数函数的阶.5种渐近意义下的符号1.渐近上界——大 O 符号定义:设 f 和 g是定义域为自然数集N上的函数。若存在正数 c 和 n0 ,使得 对一切 n > n0有 0

2023-08-31 21:52:46 1574

原创 【C/C++】#define宏替换高级用法

传参数的宏替换二、宏替换不会做表达的运算三、宏替换多行—反斜杠连接四、#undef取消宏替换五、宏替换转字符串、拼接等用法六、宏替换的优缺点宏替换的优点:便于维护,提高代码的可读性由于宏替换将代码片段在预处理期替换,可以提高程序的执行效率宏替换的缺点:没有安全类型的检查宏定义在部分代码中可能不直观,可能不方便调试宏替换不会运算求解

2023-08-30 10:20:25 3264

基于动态体系的机场综合管理系统

基于动态体系的机场综合管理系统,通过采用高可用性和可伸缩性的微服务架构,将核心功能划分为多个独立的服务,每个服务都可以单独升级和扩展,从而确保系统的可用性和性能。同时,本文还介绍了航班调度子系统的功能,包括航班后台管理和航班实时监控等。通过学习本文,读者可以了解到如何设计高可用性的系统架构,以及如何将核心功能划分为多个独立的服务,从而确保系统的可用性和性能。此外,读者还可以了解到航班调度子系统的功能和流程,以及如何制定合理的航班调度策略。通过了解消息传递机制在系统中的应用,读者可以更好地理解各个构件之间的通信和交互方式。本文适用于对机场综合管理系统和航班调度子系统感兴趣的读者,包括软件开发人员、系统架构师、航班调度员等。通过学习本文,读者可以了解到如何设计和开发一个高效、可靠的机场综合管理系统,以及如何实现航班调度的优化和管理。同时,本文还提供了对微服务架构和消息传递机制的深入理解,有助于读者更好地应对复杂的应用场景和技术挑战。

2023-11-01

操作系统重要概念复习总结

本文涵盖了操作系统的基本概念和功能,包括进程控制、存储器管理、输入输出系统、文件管理等。具体概念包括: 操作系统是配置在计算机硬件上的第一层软件,主要作用是管理好这些设备,提高利用率和系统的吞吐量,并为用户和应用程序提供一个简单的接口。 多道程序是指将多个进程同时加载到内存中,并通过切换执行的方式实现并发执行。 分时系统是指在一台主机上链接了多个配有显示器和键盘的终端并由此所组成的系统,允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。 系统调用是操作系统提供给应用程序的一种编程接口,用于访问和请求操作系统内核提供的服务和资源。 虚拟机是通过分时复用的方法,将一台物理I/O设备虚拟为多台逻辑上的I/O设备。 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。状态切换是指进程在运行过程中发生的状态的转换。 适用人群: 这篇文章适合对计算机系统、操作系统和系统管理感兴趣的读者,包括学生、研究人员、开发人员、系统管理员等。 能学到什么: 通过阅读这篇文章,读者可以了解到操作系统的基本概念、功能和重要元素,包括进程控制、存储器管理、输入输出系统、文件

2023-11-01

空空如也

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

TA关注的人

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