<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[alanmian的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/alanmian</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; alanmian]]></copyright><item><title><![CDATA[C++操作系统之银行家算法]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130548169</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130548169</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 21:37:18 +0800</pubDate><description><![CDATA[第三点：当首次算法执行完后，能得出安全序列，能首次Request资源时用的资源表是初始化的资源表这是要理清楚的，后面Request申请的则用上一次的资源申请表所以要考虑好资源表的保存以及复用，还有要做好Allocation，Need，Available的保存，复用以及还原，要做还原这个在下一点讲。主要考虑进程能不能正常分配的问题，即剩余资源该先分配谁，分配了后能不能让它执行完，执行完返回的资源又该继续分给谁的问题，最后看能不能所有进程都分配到资源执行完。执行完了会有安全序列。]]></description><category></category></item><item><title><![CDATA[C++操作系统之高响应比（HRRN）算法（非抢占式）]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130548078</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130548078</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 21:21:22 +0800</pubDate><description><![CDATA[第二：考虑的是当前时间片有多少进程进来先按上述的排序方式来排序，然后进来的进程要考虑等待时间，即每个进程结束后，当前的时间片内到达的进程都要对这个时间计算等待时间，然后再按优先级进行排序。是一个比较复杂的多排序问题。第一：初始化时，进程到达的时间要排序，此时排序要考虑的是进程的到达时间以及服务时间，同时间下服务时间越短的则优先级越高，分母越小得数越大嘛，小学知识。每个进程都进行优先级的计算，计算公式为（等待时间+当前进程所需的服务时间）/当前进程所需的服务时间。计算出的结果则为优先权。]]></description><category></category></item><item><title><![CDATA[C++操作系统之高优先级调度（HPF）算法（非抢占式）]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130547983</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130547983</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 21:13:48 +0800</pubDate><description><![CDATA[第二：时间片记录问题，当前时间有没有进程进来，进来的要进行优先权的排序，只要在这个时间片内能到达的，则证明可以跑，那么就按最高优先级的排序，让高优先级的先执行即可。按优先级进行排序，优先级越高的则优先执行，前提条件是到达时间要对，没到达的不考虑。第一：排序问题，即初始化的时候按到达时间以及优先权来排序。]]></description><category></category></item><item><title><![CDATA[C++操作系统之短作业优先(SJF)算法（非抢占式）]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130547894</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130547894</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 21:08:16 +0800</pubDate><description><![CDATA[第二点就是搞定好时间片记录与进程到达的情况，要考虑当前时间多少个进程进来了，这时候进程到达的则按服务时间排序即可。见名思意，就是谁所需的服务时间最短就先服务谁，前提是进程有到达的情况下，没到达肯定不可能执行啦。有两点：第一点是排序问题，初始化时进程需要按两点排序那就是按到达时间以及服务时间排序。]]></description><category></category></item><item><title><![CDATA[C++操作系统之最坏适应（WF）算法]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130547831</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130547831</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 20:59:28 +0800</pubDate><description><![CDATA[空闲区容量从大到小排序，每次有申请区的某一块成功申请到内存，就重新排序一次。分两个区一个空闲区一个申请区。]]></description><category></category></item><item><title><![CDATA[C++操作系统之最佳适应（BF）算法]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130547791</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130547791</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 20:57:39 +0800</pubDate><description><![CDATA[每次都把申请区做一次排序，排序的方式是按容量从小到大进行排序。当有申请区的某一块成功申请到了内存就重新排序一次。分两个区，一个申请区一个内存区。]]></description><category></category></item><item><title><![CDATA[C++操作系统之循环首次适应（NF）算法]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130547738</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130547738</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 20:53:41 +0800</pubDate><description><![CDATA[申请区的下一块是申请区上一块在空闲区结束的位置开始查找。分两个区，一个空闲区，一个申请区。]]></description><category></category></item><item><title><![CDATA[C++操作系统之首次适应（FF）算法]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130547691</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130547691</guid><author>alanmian</author><pubDate>Sun, 07 May 2023 20:51:03 +0800</pubDate><description><![CDATA[设立两个分区，一个空闲分区即已准备好的内存块，一个申请区即需要分配的块内存。每一块要分配的内存块都要从空闲分区的第一块开始查找。]]></description><category></category></item><item><title><![CDATA[FCFS先来先服务算法C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130464300</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130464300</guid><author>alanmian</author><pubDate>Tue, 02 May 2023 16:17:40 +0800</pubDate><description><![CDATA[FCFS简单的讲就是先到达的先服务，比如A进程3秒到达，B进程2秒到达的话，那么就让B一直执行到满足它所需的服务时间。它是非抢占式的。**]]></description><category></category></item><item><title><![CDATA[操作系统高优先级调度算法C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/130065278</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/130065278</guid><author>alanmian</author><pubDate>Mon, 10 Apr 2023 17:27:03 +0800</pubDate><description><![CDATA[3.中间还有个小坑要注意的是拿数据，如果用迭代器去拿数据，是没办法较好的返回数据，会出现死循环的情况，可能也是测试的时候把后续代码给关闭了导致的，所以为了方便的管理数据这里再vector容器的遍历里用at()的方法调用，能较好的返回数据，避免去考虑数据类型是否需要转化等。1.首先要了解它的工作方式，进程都到达，那么首先考虑的是到达的时间再考虑优先级，当优先级高的肯定先执行，但是不可能出现进程还没到就执行的状况，所以代码要考虑这个点，保证进程执行是对的之后再考虑优先级。]]></description><category></category></item><item><title><![CDATA[static在类中的应用C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/121462590</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/121462590</guid><author>alanmian</author><pubDate>Mon, 22 Nov 2021 00:16:48 +0800</pubDate><description><![CDATA[static也就是静态的意思，在类中静态的操作有两个一个是对成员变量以及成员函数，只需要在原有状态上加个static。比如int a  改成static int a就变为静态成员变量了。
重点：
静态成员变量：
1. 所有对象共享同一份数据
2. 在编译阶段分配好内存
3. 类内声明类外初始化。
静态成员函数：
1. 所有对象共享同一份数据
2. 静态成员函数只能访问静态成员变量
首先我们来讨论静态成员变量！
思路！：
1. 记住！静态成员变量一定是类外初始化的！
2. 成员变量的访问有两种！一种是通过对象]]></description><category></category></item><item><title><![CDATA[友元类C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/121320787</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/121320787</guid><author>alanmian</author><pubDate>Sun, 14 Nov 2021 23:06:00 +0800</pubDate><description><![CDATA[讲一讲友元类，友元类跟派生（继承）其实还是有点像的，但是对于权限问题就有偏差了。先讲友元类吧，友元类顾名思义，也就是好朋友意思，那我好朋友之间是可以分享秘密啊什么的，所以友元类可以起到一个访问私有属性的，在一般情况下私有属性只能被类本身自己访问的，但是为了程序的灵活啊我们就来个好朋友把它秘密给问出来！
友元类的关键字：friend
友元类分三种使用方式！
第一种：全局函数做友元类
第二种：类做友元
第三种：成员函数做友元
看图！大概的结构！

来 直接上代码！
直接对比看一下就行 思路就在图上
**有个注意]]></description><category></category></item><item><title><![CDATA[C++类与对象]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/121306311</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/121306311</guid><author>alanmian</author><pubDate>Sat, 13 Nov 2021 18:03:55 +0800</pubDate><description><![CDATA[写一篇基础文章
讲一下类与对象这个东西，比较深的概念就不讲了。  类顾名思义 也就是某种具有相同特点的东西的集合，比如车类身上含有轮胎，座位，发动机等，这些东西的集合构成了一个车类，在这里我以学生作为开端，后面会讲解到继承，多态等先基础开始。
首先！看图！

private是完全私有的，只有自己可以访问，派生类和外部都不可以访问
protected是受保护的，只有派生类可以访问，外部不能访问
public权限是最大的，可以内部调用，实例调用等。
这个详细就不说了，可以去参考课本讲解 大概都差不多。
然后我们]]></description><category></category></item><item><title><![CDATA[哈夫曼树C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/121278095</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/121278095</guid><author>alanmian</author><pubDate>Thu, 11 Nov 2021 23:19:42 +0800</pubDate><description><![CDATA[哈夫曼树也叫最优二叉树，也是搜索二叉树，也是完全二叉树，最优二叉树也就是WPL值最小，二叉搜索树满足权值左边小右边大的规则。
要笔记的可以私信下面直接讲解代码
首先 老规矩写个结构体！
思路：
1.录入结点，并且录入结点权值 所以定义一个字符类型和int weight
2.哈夫曼树是通过两个最小值组合称为双亲结点然后再构成一棵二叉树
所以会有双亲结点跟左右结点并且为 int类型。
在这里说明一下为什么是int 类型的左右结点还有parent结点，因为由**左结点最小值+右结点最小值=新的父节点值
typed]]></description><category></category></item><item><title><![CDATA[双向链表C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/121175479</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/121175479</guid><author>alanmian</author><pubDate>Sat, 06 Nov 2021 18:12:08 +0800</pubDate><description><![CDATA[双向链表，顾名思义，一条可双向进行的就叫双向链表。那怎么搞？也就是有前驱跟后继，有些时候有人不明白什么是前驱跟后继啊，浅显的讲讲，前驱就是当前结点指向上一个结点的箭头，那么上一个结点就是当前结点的前驱，后继就是当前结点的前一个结点，从上一个结点指向当前结点就叫后继，也就是说上个结点作为头，那当前结点作为尾，头的后继不就是尾嘛。
然后有头尾指针，双向嘛。头指针运动，尾指针也运动，所以这里要多存个尾指针。那说了这么多，先来构造给双向链表吧。

定义结构体老掉牙的东西了
思路！：
1.刚前面说了有前驱跟后继，那么]]></description><category></category></item><item><title><![CDATA[顺序表的基本操作C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/121171385</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/121171385</guid><author>alanmian</author><pubDate>Fri, 05 Nov 2021 22:49:27 +0800</pubDate><description><![CDATA[讲一讲顺序表吧
首先定义结构体老套路了
顺序表比较特别首先要分配好内存空间，给够空间，不够以后再来说要么扩容，扩容是倍增的扩容一会开小灶来讲就不放到主运行里了
**typedef int Elemtype;**讲一下这个，可能比较多人不太理解这什么意思，其实也是单纯的定义一个类型变量罢了（typedef的用法），只是这个名字改了一下，对于以后对程序的维护方便点而已，就是把int这个整型变量改名为Elemtype，以后要改类型就直接在int那里改成float，double，bool之类，比较方便；
#incl]]></description><category></category></item><item><title><![CDATA[单链表的基本操作C++]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/121153502</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/121153502</guid><author>alanmian</author><pubDate>Fri, 05 Nov 2021 21:29:27 +0800</pubDate><description><![CDATA[在这里插入代码片@TOC
欢迎使用Markdown编辑器
你好！ 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章，了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持，除了标准的Markdown编辑器功能，我们增加了如下几点新功能，帮助你用它写博客：

全新的界面设计 ，将会带来全新的写作体验；
在创作中心设置你喜爱的代码高亮样式，Markdown 将代码片显示选择的高亮样式]]></description><category></category></item><item><title><![CDATA[c++写九九陈法表，除法表，加法以及减法表]]></title><link>https://blog.youkuaiyun.com/alanmian/article/details/115013899</link><guid>https://blog.youkuaiyun.com/alanmian/article/details/115013899</guid><author>alanmian</author><pubDate>Fri, 19 Mar 2021 19:18:09 +0800</pubDate><description><![CDATA[利用c++写九九乘法表，除法表，加法表(随便写的有待提升)
陈法表
#include&lt;iostream&gt;
using namespace std;
void main()
{
	int i, j;
	for (i = 1; i &lt;= 9; i++)
	{
		for (j = 1; j &lt;= i; j++)
			cout &lt;&lt; i &lt;&lt; "*" &lt;&lt; j &lt;&lt; "=" &lt;&lt; i * j &lt;&lt; " ";
		co]]></description><category></category></item></channel></rss>