- 博客(44)
- 收藏
- 关注
原创 priority_queue 优先级队列
所以我们首先比较左右子节点值的大小,比较得出是左子树的值大还是右子树的值大,然后再使用较大的子节点值与父亲节点值进行比较,如果子节点值小于父亲节点值,则不进行任何操作这已经满足堆的逻辑,反之进行值替换,接着将子节点重新赋值为父亲节点,再重新计算父亲节点进入下一轮值比较,直至达到根节点或者子节点值小于父亲节点值时,停止排序。向下调整思想将数据分为多个子树,每个子树只需向下调整好自己的子树,保证自己一定是一个大根堆,从后往前依次调整(子树 1 -> 子树 2 -> 子树 3),自然地最终我们的堆就排好序了。
2025-04-16 18:43:40
264
原创 我的Hexo自动Webhook部署方案
如果说 **Github Action** 是可以让用户更加注重于 Markdown 的编写,那么我的 **Hexo-Autocd** 项目方案就是让用户只注重于 Markdown 的编写,甚至不需要手动推送。可以想象一下:你正 Windows 上的图形化编辑器中写 Markdown 笔记,当你写完的时候打开你的网站发现你的博客上已经有了你才写完的 Markdown 笔记文章,并且做好了分类和标签,简直是太爽了!
2025-04-11 15:16:00
962
1
原创 STL-deque双端队列
deque 结合了 vector 和 list 的部分特性,支持随机访问(通过[]运算符),但中间部分的插入和删除效率较低。deque 的优势:多段连续内存deque由多个固定大小的内存块(数据段)组成,这些数据段通过一个中控指针数组管理。高效的头尾操作:支持在头部和尾部快速插入和删除元素,时间复杂度为O(1)。随机访问支持:通过[]运算符可以随机访问元素,尽管效率不如vector,但优于list。内存连续性:相比listdeque的内存空间相对更连续,对CPU缓存更友好。
2025-04-09 14:55:28
632
原创 STL-stack栈和queue队列
stack 和 queue 都是 STL 中的容器适配器,它们通过封装其他容器类来实现特定的数据结构功能,而不是从底层类型一步步封装而来。它们的默认底层容器都是 deque,即如果没有指定模板参数中的底层容器类型,则默认使用 deque。
2025-04-09 14:54:50
975
原创 STL-list链表
我就简单讲几个主要的函数,但是这里给出完整的 list 实现,方便大家进行全面的阅读。也不是那么复杂对吧,但是我这个是简化版,STL源码的 list 实现比这复杂得多,更多的封装还有内存池的调用。首先我们先来了解 list 的节点模型,list 中链接着许多的节点,每个节点都是一个节点模型的实现。但是这部分没什么好看的,大家自行了解吧。位置的节点,然后得到它的前一个节点方便进行后续的链接。是实现不了的,因为链表很灵活,每个节点的内存空间并不一定连续,所以不能单靠。的,让 list 的头插尾插更加的方便。
2025-04-09 14:54:20
825
原创 STL-vector顺序表
STL中 **vector** 是顺序表的实现。**vector** 和 **string** 十分相似,但功能各不相同。**string** 是 C++ STL 中用于存储字符序列的容器,它提供了大量用于操作字符串的方法,但是它的底层其实就是封装的一个 `char*` 的指针,并增加需多方法,专门用于处理文本数据。我们都知道字符串的**内存空间是连续的**,这一点 **vector** 也一样。vector 是 C++ STL 中的动态数组容器,vector 的底层是一个 `T*` 的指针,用于**顺
2025-04-09 14:53:46
639
原创 HTML学习笔记
是什么? HyperText Markup Language(超文本标记语言)标签也可以称为元素,是HTML的基本组成单位。标签名不区分大小写,但是推荐小写,因为小写更加规范。一般的标签都是有始有终的叫做"双标签",但是也有一些特殊的标签没有结束标签。叫做"单标签"例如:标签嵌套标签属性标签属性用于给标签提供附加信息。可以写在:起始标签或单标签中一般的标签属性都具有属性名,但是也有一些标签属性只有属性值。例如:标签属性不能重复,如果有重复遵循先入为主。HTML文档声明文档声明必须放在第一
2025-04-09 14:52:12
629
原创 C++语法学习之路
任何场景下都可以使用引用作为函数参数,但是引用作为返回值只能用在函数栈帧空间回收后返回对象还存在的情况下使用。合理使用引用可以让我们的代码效率大大提升,且可读性良好。A b = 1;//隐式类型转换,整形转换为自定义类型return 0;A b = 1;这一条命令中发生了隐式类型转换,首先使用1作为参数调用A类的构造函数,在使用拷贝构造拷贝给实例化类b。
2025-04-09 14:50:44
995
原创 Ansible入门
Ansible 是一款实现自动化运维管理的工具。能够快速一键的为大量的集群统一的管理自动化工作。Ansible 基于 python 开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点实现了批量系统配置、批量程序部署、批量运行命令等功能。而且Ansible没有客户端。
2024-06-11 13:44:23
1017
原创 初识操作系统
操作系统是一个管理软硬件的软件。它通过管理好硬件资源和软件资源,从而实现对计算机用户提供良好的运行环境。作为一个程序员,了解操作系统是非常有必要的。
2024-06-04 09:32:15
996
原创 C语言Linux进度条模拟
在Linux字符界面中,使用yum、apt下载东西时会有一个图形化的进度条,可以告诉我们任务的执行进度。我们也可以通过C语言实现一个类似的进度条,并且可以做得更加美观。以后我们自己写的程序需要显示进度时就可以去调用我们自己实现的进度条。
2024-06-01 19:44:02
758
原创 PVE下安装配置openwrt和ikuai
硬路由是平时我们常见的那些路由器和无线路由器,它们转发数据的模块通常都是集成在硬件之上的所以效率相比软路由来说比较高。但是硬路由不是很好管理,而且一般也就只有数据转发的功能。软路由是没有硬件支持的数据转发模块的系统。它可以刷在各种电脑上,软路由系统占用资源少,一般就1核1G就够用了。软路由部署了很多功能,硬件路由器的功能软路由基本上都实现了,除此之外还增加了许多新功能、新插件。能够加插件也就意味着软路由的功能有很强的可扩展性。常用的软路由系统就是 openwrt 和 ikuai 了。
2024-04-09 09:35:38
9905
7
原创 锐捷Rns和Track功能
rns 是 ruijie network service 的缩写,rns 通过探测对端设备是否具有响应报文发出,来监控端到端连接的完整性。一个 track 对象可以跟踪一个 IP 地址是否可达,也可以跟踪一个接口是否是 up 的。track 功能分离了要跟踪的对象和这个对象状态感兴趣的模块,像 PBR,VRRP。当 track 对象状态变化时,它们可以采取不同的动作。
2024-04-07 19:28:21
1058
原创 Linux 开发环境以及编译链接
之前我已经写过文章简单介绍了编译链接要做的一些操作。现在为了能更好的理解我们平时的开发环境,我会在Linux系统上完整地走一遍流程。
2024-03-29 14:59:38
1637
原创 C++模板
C++新加入了一个关键字 "template",它能实现 "模板" 的功能。我们之前写函数重载需要写多个命名但参数不同的函数,写起来非常的繁琐。使用 "template" 可以实现写一个模板,然后按照这个模板生成对应的函数,把繁琐的CV(复制粘贴)步骤取消掉了。
2024-03-28 14:05:24
196
原创 我的世界Linux MCSM+Mohist服务端部署
最近玩MC自己整合了一个新包,玩起来很舒服。但是有时会有朋友一起来玩,加上我自己玩的客服端上加了光影,对电脑负载有点大。所以想做个服务器,减小一下我电脑的负载。顺便写篇文章记录一下部署过程。
2024-03-24 17:44:03
1813
原创 C++构造函数和静态成员、友元
在创建对象时,编译器会调用构造函数对对象进行初始化工作。对象的初始化有两种方式,一种是构造函数体赋值另一个是初始化列表。
2024-03-21 12:23:48
366
原创 C++类和对象以及默认成员函数
C++和C语言之间最大的区别就是C++出现了类和对象。C语言是面向过程的,就好比你想吃饭那么你只能自己亲手做饭吃,切菜,下锅,炒菜,出锅这些事都需要自己去完成。但是在C++中是面向对象的,就好比你去店里吃饭,你只管下单,然后复杂的做法过程你全程不管交给厨师去完成,你只管厨师把饭做好端给你吃。这其中就C++就好比把做法的过程封装了起来变成厨师,你想吃饭的时候就可以让厨师去做,而不用你自己去做饭。
2024-02-28 18:34:15
511
原创 C++引用的使用场景
任何场景下都可以使用引用作为函数参数,但是引用作为返回值只能用在函数栈帧空间回收后返回对象还存在的情况下使用。合理使用引用可以让我们的代码效率大大提升,且可读性良好。
2024-02-20 18:16:50
537
原创 C++入门
C++是在C的基础之上,容纳进了面向对象编程思想,并增加了许多有用的库,以及编程范式等。前期的C++主要是在补充C语言的不足,以及对C设计不合理的地方进行优化。
2024-02-06 19:52:42
394
1
原创 MPLS LDP标签管理
华为的LDP标签管理,是使用基于平台的标签空间,标签控制方式采用DU+Ordered的方式,使用Liberal自由标签保持方式。
2024-01-20 11:59:00
1161
原创 MPLS PHB行为
数据在转发时,设备都会通过查表的方式指导数据转发。在SWA上需要查一次FIB表,在SWB和SWC上需要查一次ILM表,在SWD上需要先查一次ILM表把标签去掉,然后再去查FIB表进行IP转发。在SWD上进行了两次查表,但是如果我们在SWC上把传给SWD的标签去掉这时SWD就只用查一次FIB表。节约了SWD的资源。
2024-01-19 11:51:05
540
1
原创 MPLS LSP
IP报文在MPLS网络中经过的路径称为标签交换路径LSP,这条路径是在转发报文之前就已经通过各种协议确定并建立的,报文会在特定的LSP上传递。LSP是一个单向路径,与数据流的方向一致。LSP的入口LER称为入节点;位于LSP中间的LSR称为中间节点;LSP的出口LER称为出节点。一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点。
2024-01-19 11:10:12
1193
1
原创 MPLS LDP标签分发协议
上篇我们都知道一个IP报文进入一个MPLS域后会打上标签,但是标签值该打多少,MPLS设备之间又怎么知道对方的标签信息这是一个问题。对于这个问题提出了LDP(Label Distribution Protocol)标签分发协议。LDP是用来在LSR之间建立LDP Session(会话)并交换Label/FEC映射信息的协议。
2024-01-16 15:02:54
463
1
原创 MPLS基础理论
MPLS(Multiprotocol Label Switching)是多协议标签交换的简称,多协议指的是MPLS支持多种网络协议,比如IP、IPv6、IPX等,且兼容ATM、帧中继、以太网、ppp等多种链路层技术。标签交换就是指对报文打上标签,根据标签进行转发。
2024-01-16 11:03:49
1010
1
原创 SDN架构与传统网络架构
传统网络架构有三个平面:管理平面,控制平面和数据平面。这三个平面彼此分离,但又紧密联系。管理平面分为系统管理平面和业务管理平面,系统管理平面负责设备系统管理,业务管理平面则管理业务信息。(ssh之类的)控制平面负责协议路由计算,比如路由信息的计算,路由表的生成等。(ospf之类的)数据平面负责数据的转发,比如通过路由表去转发数据流量。
2024-01-15 15:33:20
1549
原创 CentOS7.6 Apache配置安全网页并搭建wordpress(Apache Mariadb Wordpress)
我们每天上网访问的页面都是存储在服务器中的,服务器通过运行http服务把网页发布到互联网上供人们使用。常见的http服务有这三种:Nginx、Apache、IIS。配置Apache Mariadb Wordpress,其中Apache用于发布网站,Mariadb作为Wordpress的数据库,Wordpress则用于承担网站的内容。接下来,我会教大家如何配置Apache服务,并讲解其中的一些参数和理论。
2024-01-10 14:08:02
479
原创 锐捷NHRP解析,MGRE+NHRP
NHRP由IETF在RFC 2332 中定义。用于解决非广播多路访问网络上的源节点(主机或者路由器)获取到达目标节点的“下一跳”的互联网络层地址和NBMA子网地址。NHRP协议是一个典型的客户端/服务器协议,分为NHS(NHRP服务器)和NHC(NHC客户端),每个子网至少有一个NHS,一个NHS可以为多个子网服务。
2023-12-31 21:21:53
1741
原创 网络类型及数据链路层协议
网络类型是根据二层网络(数据链路层)所使用的协议及规则来进行分类的,常用的几种数据链路层协议有:以太网协议、HDLC协议、PPP协议,根据支持网络中的设备数可以分为2大类:P2P和MA。
2023-12-31 16:30:06
870
原创 锐捷网络实训五(MSTP)
在SW1和SW2,SW3上运行MSTP,创建实例10包含vlan10,实例20包含vlan20,并且SW1作为实例10的主根,优先级为4096,SW2作为实例20的主根,优先级为4096.运行OSPF协议,进程号10,区域0,并且在R1上配置默认路由指向Inter,在R1的OSPF中重发布这条默认路由。根据实训项目 6-拓扑图和实训项目 6-地址规划表上要求,为每一个PC和接口配置IP地址。与SW2相连接的两个端口采用链路聚合,聚合模式为active,端口模式为trunk。
2023-06-29 21:36:21
667
1
原创 锐捷网络实训四(单臂路由,子接口)
下面是每个设备的配置和配置验证截图,一般第一张是配置,有"show"开始为验证截图。最后有一个验证拓扑图各功能ping通的验证。根据实训项目 4-拓扑图和实训项目 4-地址规划表上要求,为每一个PC和接口配置IP地址。在交换机上创建vlan,并把vlan划分到相应的接口,SW1的G0/0口为Trunk模式。在R1上创建GIG0/0的子接口作为VLAN10,20的网关。
2023-06-29 21:35:27
2188
1
原创 锐捷网络实训三(NAT配置)
下面是每个设备的配置和配置验证截图,一般第一张是配置,有"show"开始为验证截图。最后有一个验证拓扑图各功能ping通的验证。在出口路由器上配置默认路由,让它能够访问外网,并且在Internet设备上也写一条默认路由指向出口路由器。根据实训项目 3-拓扑图和实训项目 3-地址规划表上要求,为每一个PC和接口配置IP地址。在出口路由器上配置NAPT,使PC能够PING通外网的100.1.1.1。
2023-06-29 21:35:05
2996
5
原创 锐捷网络实训二(VLAN Access口 Trunk口)
根据实训项目 2-拓扑图和实训项目 2-地址规划表上要求,在交换机上把VLAN划分到对应的接口上,并且更改交换机与交换机相连接口的模式。下面是每个设备的配置和配置验证截图,一般第一张是配置,有"show"开始为验证截图。最后有一个验证拓扑图各功能ping通的验证。根据实训项目 2-拓扑图和实训项目 2-地址规划表上要求,为每一个PC配置IP地址。
2023-06-29 21:34:43
1011
1
原创 锐捷网络实训一(OSPF,Telnet)
根据实训项目 1-拓扑图和实训项目 1-地址规划表上要求,在路由器上启动OSPF协议,进程号为10,router-id为名称后的数字(比如R1,router-id就为1.1.1.1),R2和R3属于区域0,R2与R1属于区域1,R3与R4属于区域2。下面是每个设备的配置和配置验证截图,一般第一张是配置,有"show"开始为验证截图。最后有一个验证拓扑图各功能ping通的验证。根据实训项目 1-拓扑图和实训项目 1-地址规划表上要求,为每一个PC和接口配置IP地址并修改各个设备名称。
2023-06-29 21:31:50
675
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人