00:03
哈喽,大家好。我是妄想克拉男人呢?今天讲一下这个代码编辑器。就这内容了一个内存管理。操呃,撤销操作,恢复操作,操作快展开,快提找查找替换。这里看一下内线管理,内存管理的,这里内线管理就是。用到的分配不负责回收。看一下具体代码。啊,总的意思是。简单的说就是啊,保留一段内存。保留一个没法读,没禁止写,禁止读的内存,然后设置一个异常。
01:00
就是刚刚那那那那内存被读被写的时候,就触发这个异常,异常在我在这异常里面再分配。分配内存。然后呢,并不负责回收,就只用到再分配,不负责回收,你刚刚说的那个。就是这样的,就就这么简单,然后第二个就是测试操作,恢复操作了。这个是以行为单位的,我们这里就是。这个一行行行一行的单位的,然后还有一段单位,段单位是最省的,不过这里就是方便行驶。以段段还要找的行,一般来说它会更复杂一点,所以呢,这里就是为了保持呃,确保呢正确率,程序正确率,我们这里以段位以行为单位,并不以段为单位,端也可以,不过它复杂很多,他还找的行,就是我以行单位可以直接在行里操作,它以个以段的单位的话,它也有它。
02:05
找到他。什么叫操?呃,操作撤销恢复不简单啊。这个快展开收缩,展开收缩,展开收缩,然后里面这个,然后呢,这里就是撤销。恢复啊,大概这个意思。接下来的,然后这个撤销,这个会复合,这个意思就是每一个操作都有内存的,然后呢,我们以操作。操作为模块,然后以行为单位这个意思。然后呢,呃,收缩快展开也是一种操作,这里收缩快展个快,要分为函数全部收缩,全部展啊全部展开。双击搜索一个,双击打开一个。什么叫函数全部收出来,这个这里是已经收出来,我们就全部展开先。
03:03
展开,全部展开是这样的,大家看一下。全部打开这样的。然后我们呃,函数全部输出。这是说函数不收缩类这个函数人不收缩,人不收缩。然后呢?这里双击双击搜索,双击展开。这个双击搜索双击搜索双击搜索双击搜索刚刚刚刚那个操作恢复也是这样,操作撤销操作撤销操作恢复操作恢复,然后里面呢,我们也可以继续的进行添加的,意思是呢,我们可以在添加一个。
04:10
在添加多一个。下1000加多一点。看到没有,它可以这样收缩起来,再收缩起来。再收拾起来,展开展开。展开开展开展开,这样可以展开。然后呢?刚刚已经展示了全部了,这怎么实现呢?我们这里全部有分支实现,看一下代码了。分支实现分析,这里就是。啊,对了。
05:08
分析这里,看下来分析这里。先。看一下。注释,这里就是。分析,这里提供了注释,也就这个。根据你提供了什么东西。别讲,那我知道这个就是这这个分析可工作。我们可以继续提供住宿,也可以。或者这种舒适也可以。或者这个祝福也是我们提就是这字符颜设,这就是有这个啊分析提供的。这个操作字符啊。刚你看一下这就这样的,我们这里以施加加为例的。其他的可以自己自行更改了。这里也是出事了,这里是字符的,看到没有?
06:04
这里也是不串了,看到没有?就错了。这边。啊,这这里就是。快了。刚刚那个函数收缩全部收缩怎么看,就这的看一下。这个就直接快开始了。如果我们。呃,第一个有效字符除开的空白字符就是这个东西的话。我们就把它写成为,呃,写成有文。如果之前有的话,我们就可以设置,就设置这个。然后一一路的读啊一路的读,然后把它就这样就可以实现那个函数全部收缩。这里还要看一个一个一个简单的观点就是。它它是快怎么实现的,也这样呢,这样收缩起来什么意思呢?这个是A,这个B。就是。
07:01
内容是以上一步保存。就叫KT。也就是数据是没没没没法一下子读的,他要间接的读的。如果它是快的话,他要这样读是行的,怎么读啊。你看一下。AB刚time的筷子。你看这一块怎么定义定义了。啊,四个四个四个数一个就是。这个就是操作每一步操作的am,然后这个这个AB就表表示范围,这个T表示呃。表示类型。然后看一下。看这你这个等于A,这个等于B呀。这种就是,呃,类型一还有类型二就是这种了,当然还有其他类型,我们没有这样,这个就是。
08:10
类型二,我们也可以这样看到没有这个这个类型啊,类型就是有两种类型的。然后呢,嗯。看见没有,刚才就是这个这样这样这样保存的操作以后,我们可以保存操作的数据,刚刚KT就是保存操作数据。这个呢就不去操作,当然也是对应对不对。这个是在类里面的,你不要觉得没刚刚这个MT里面的,不过他有有点大而已,看到没在这里面对不对。DMT也读就行了,他怎么读,看在这里啊,因为这个范围,然后把它啊。这个是更新一下那个范围,保证这个A小于B的A,并且在这个,呃,在这个这个行数里面的,就是调整一下,如果它是一行的话,什么叫一行呢。
09:11
意思是这样,这A呀,这B啊,这一行啊,也直接读一段就行了,对不对,读一段一段数据对不对。这里是读一段数据。然后这这里是什么意思,这个这个意思。这这行呢,就表示读这一段这个A这个。我们这这个主意A啊,我们读这先读这一段,然后读中间的一段,然后再读最后的一段。明白了吧?然后呢,这里读数据的时候呢,我们如果再次快的话,看到刚刚快保存的那个数据呢,我可以直接再返回来操作读这个。再返回操作读这个。这样就形成了快中快。展开再展开,这样快中快可以读了,刚刚就是这样解决了。
10:00
刚刚那个。讲话搜索快,我打得快了以后再讲一下查找了,查找第一个,查找最后一个,查找上一个,查找下一个。好,这里简单以啊以这个Y为单位了。直接这样这样啊。替换,这里提供文档替换,我选择替换了,先看一下全部替换了啊,就是文档替换了。看他这样,替换成这样了。刚刚来查找了。查找上个。查找第一个。下他叫下一个下一个下一个下一个下一个下一个下一个下一个下一个下一个下一个下一个下一个下一个。
11:04
三个三个三个这样查找,注意了,如果呃块里面也可以查找的,我们这里设置的是块里面找,比如这呢。目前。不对对对。如果你块里面有这个东西呢,我们比如插在下一个,它这块里面我就有展开一个,就块里面也有会展到这里。快里面也查找到,就这么点,替换也是替换里面差的一下比这样的,这个是最比较最重要的看下。比如啊,我们看一下这个快。刚好就快这里。然后你看一下这个块里面。比如,呃,这还不是很明显。这里这个明显一点点。比如这个我们替换这个,因为这样的话,我们也可以替换的。把它替换成这个。
12:04
选择替换。看到没有,它就会替换到块里面去了。看见吗?然后讲完qone查找之后呢。早上提货的就全部代码都在空间文章里,大家呢,可以复制编辑使用。最后呢,希望大家点赞评论了,给一些动力,让我啊继续分享代码了。就这样了啊,最后呢,就复原一下了,这这个就操作撤销了看一下。这个操作测试。看见没?也操作恢复了,看到吗。
13:00
就是这样的。嗯,大家拜拜了。
我来说两句