自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】系统进程的概念

我们常见的计算机比如常见的笔记本,服务器大部分遵循冯诺依曼体系结构。电脑由一个个硬件组成,硬件接受到的数据传入给存储器,存储器交给CPU进行计算,计算后的结果返回给存储器,然后再由存储器把数据传给输出设备。输入设备:键盘,摄像头,话筒,磁盘,网卡...输出设备:显示器,音响,磁盘,网卡...存储器:内存。CPU:运算器进行算术运算、逻辑运算。那么这里就问题来了,为什么不直接让CPU与输入输出设备进行交互,要在中间加一个内存呢?首先我们要知道每个硬件对数据的反应速度是不同的,由高到低为。

2022-09-12 00:43:29 842 1

原创 【Linux】常用工具的使用

像vs2019这样的编译器是集成编译器,是集合了编辑器,编译器,和Debug为一身的工具,但是在Linux是分开的,编辑器就是编辑器,编译器就是编译器,和Debug的工具。虽然不好用,但是要学会如何使用。

2022-09-08 22:53:28 676

原创 【Linux】文件的权限

权限笼统分为两种一种是人的权限,一种是文件的访问权限。而root(管理员)具有Linux最高的权限,最多只有一个。而普通用户可以有多个,要受到权限的约束。

2022-09-05 21:14:04 23080

原创 【C++】STL库_Vector的模拟实现

Vector是一个线性表,可以当做是数组来使用。vector的大多数函数和使用方法都跟string类似,所以这里主要是注意实现的方法。

2022-09-01 22:33:31 395

原创 【C++】泛型编程

为了让函数或者类有更好的复用性,C++引入了摸板的技术。让不同的数据类型,能使用到相同的函数或者类中去,这种编程的思想也叫做泛型编程。

2022-08-31 22:06:23 5611 3

原创 【C++】日期类

这里刚开始的里面的if判断相互复用了,但是不会构成死循环,就是你调用我然后我再调用你的情况,运算符重载里面很多复用的情况,所以要避免相互调用的情况。然后要后置的意义是先返回后计算,所以用了一个临时变量来记录修改之前的值,所以这里不能返回引用,不然临时变量出函数销毁。构造函数设置了缺省值,变成默认构造函数,这里设置缺省值的时候还是要注意,日期肯定没有0月0日的,所以这里设置为了1。这里的函数如果重载在类内部,使用的时候是 d.........

2022-08-29 21:28:16 460

原创 【C++】初识类和对象

/一定要注意这里的分号使用关键字class,来定义一个类,其实会发现这里跟struct定义结构体非常相似,当然其中的很多细节是不同的。1.访问限定符在类中有三个访问限定符:private(私有),public(公有),protected(保护)。其实单看名字都能大概猜出来其中的意思。public(公有)类里外都可以访问其变量或者函数,private(私有)只能在类里面访问。protected(保护)有点特殊后面讲。...............

2022-08-24 23:29:29 672

原创 【Linux】初级_常用命令

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。就是list的缩写,通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。用户显示公历(阳历)日历,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。......

2022-07-18 22:58:00 480

原创 【C++】初识Cplusplus

别的不说,先认识祖师爷,本贾尼·斯特劳斯特卢普(BjarneStroustrup,1950年6月11日-),丹麦人,计算机科学家,在德克萨斯A&M大学担任计算机科学的主席教授。他最着名的贡献就是开发了C++程序设计语言。以后面试官问你C++之父是谁,就说是本贾尼博士,注意!可不是谭浩哦。众所周知,C语言是面向过程的语言,大佬觉得不好用(ProcedureOriented简称PO),就引入了对象的概念,C++就说一门面向对象的编程语言C++三大特性封装、继承、多态。.....................

2022-07-17 20:27:00 1235

原创 【VMW】虚拟机安装Linux系统

阿里巴巴开源镜像站-centos镜像当然去其他镜像网站都可以,这里推荐这个网站,下载镜像。 下载XShell: XShell,提取码:pg9f​​​​​ ​​​添加一下刚刚下载的系统镜像​ 配置完成后设置一下IP地址 配置完成后,打开虚拟机进行系统安装​​按照步骤走。PS:如果想切鼠标使用Ctrl+Alt安装中等待。 选择盘符 设置时间 安装软件 这里选择最小化安装,后面缺少什么就安装什么 打开网络PS:这里的步骤很重要,方便后面连接 !!设置root密码:123456 开

2022-07-12 23:42:05 419 1

原创 【C语言】归并排序和计次排序

归并排序要额外多开一个数组用于存放归并后的数据,然后再把排序好的数据放回原数组。 归并排序使用递归的写法,大致分位两个步骤,一个是分解,一个是归并。而归并的数据必须是有序的才行,那么如果保证其最开始是有序的呢? 其实这里进入递归到了最底层,其数据被分为单一个数为一个区间的时候,这里就认为其是有序的。 分解会把数据分解为两个区间,然后做比较,如果是升序的话,一个个比较,把较小的放到临时数组。 此时此段区间就变为有序了,返回上一层这段区间就又可以用来被归并

2022-07-05 21:48:10 490

原创 GameofMir__游戏Mod制作【1】

配置文件: D:\MirServer\Mir200\Envir\StartPoint.txt 根据上面的命令,写出对应的参数。 这样就设置成功一个安全区了,然后区M2上看看,出生点的设置。 如果这里设置了多个安全区,新人出生点的范围选3的话,会从最前面3个安全区,随机选择一个出生。 这里我就保留一个出生点,然后保存,再重启Misever服务端,重开游戏。 新建一个人物,测试一下出生点。 发现新的人物出生点已经在对应的地图了,

2022-06-30 23:33:23 3894

原创 【C语言】快速排序__拓展

这种方法其主要是好理解,其快排的本质却没有改变。 其主要思路是,把key对应位置空出来,然后两边同样找大找小,只不过这次把找到的数,放到空位置处。 找到最后左边和右边相遇,此时相遇的位置必定为坑,再把key放过来就好。 这样一次排序就完成了。如果其左边有坑,天然要从右边开始找。如果key找的是右边,其天然要从左边开始找。 这种找法跟传统的排序其本质差不多,但是要注意其数据移动的位置的不同于传统快排的。如果有选择题是,快排的移动顺序的题目,要考虑到这个点

2022-06-29 23:02:25 448

原创 【VMW】虚拟机安装小攻略

VMW软件和Win10镜像如果想下载其他系统镜像可以去:MSDN 打开.exe安装程序 几乎都是下一步,注意一下安装路径就可以。打开软件快捷方式。 这里虚拟机的安装路径比较重要,要注意一下。 如果是Linux系统大概20G就可以了。 这里我分配了4个G内存。 然后下一步,其自动开始安装虚拟机了。PS:这里桌面的图标没显示出来,这里要设置一下。 安装包里面有个Tools文件夹。 这里也有其他系统的,根据自己需要替换。 这里我就用Windows的把其复制到VMW文件夹下面,

2022-06-24 20:42:25 2340

原创 【易语言】大漠插件使用

首先下载大漠插件:大漠插件 下载完成后把Dm.dll和DmRed.dll放到同目录文件夹下,然后新建一个易语言程序。PS:DmReg.dll是大漠免注册。(不是账号免注册) 然后使用解压包中的工具,生成一个类文件。 打开类文件,全部复制。 去易程序上新添加一个类。 把数据复制进去,并且改类名为 dmsoft 给一个私有对象 Obj。 然后新建一个全局变量其数据类型就是 dmsoft 这个类。 好了到这里就可以使用这个变量使用dmsoft 类的方法了。 大漠免注册要使用DmReg.dll文件

2022-06-17 00:08:35 39643 4

原创 【C语言】经典_排序_算法

排序

2022-06-05 19:02:37 142 2

原创 【初阶】链式二叉树

普通的二叉树增删改查没有什么意义,如果是存储数据则不如使用顺序表、链表。学习二叉树的初级操作,是为了学习后面更复杂的二叉树打基础(搜索二叉树、AVL树、红黑树、B树...)。 这里大多使用的是递归法,分而治之,还有非递归的方法,但是难度偏大。一、二叉树的遍历PS:这里使用'#'号表示空。前序遍历: 根 左子树 右子树void BinaryTreePrevOrder(BTNode* root){ if (root == NULL) ...

2022-05-29 19:01:27 302

原创 【C语言】数据结构——树

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的一、树的概念概念:※节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的度为2。※叶节点或终端节点:度为0的节点称为叶节点; 如上图:E、F、G、H...等节点为叶节点。非终端节点或分支节点:度不为0的节点; 如上图:B、C、D...等节点为分支节点 ※双亲节点或父节点:......

2022-05-23 00:26:40 4324 1

原创 【C语言】实现数据结构——栈,队列

栈和队列都常用的数据结构,这里使用C语言实现栈和队列,一、栈栈:是一种特殊的线性表,其只允许在一端出数据和入数据,插入数据和删除数据的一端加栈顶,另一端叫栈底。其数据遵守先进后出的原则(Last in First out)。因为这个特点那么如果进入一段数据是 1 2 3 4 5,那么其出数据就是反的 5 4 3 2 1。压栈(push):往栈顶插入数据。出栈(pop):把数据在栈顶删除。实现:typedef int STdatatype;typedef...

2022-05-18 23:50:08 2232

原创 链表-双向循环链表【C语言】

双向循环链表是最优链表,能补齐单链表的缺点,是个结构复杂,操作简单的链表。其插入和删除节点的时间复杂度是O(1)。双向链表: 和单链表不同的是双向链表有两个指针,一个指向下一个节点,一个指向上一个节点typedef int LTDataType;typedef struct ListNode{ LTDataType _data; struct ListNode* _next; struct ListNode* _prev;}ListNode;...

2022-05-15 20:35:04 2042 1

原创 GameofMir引擎架设传奇服务器【4:架设微端】

工具:1.传奇客户端2.gom引擎包3.私服版本补丁一、架设微端服务器安装传奇客户端,安装在服务器下。安装完成后把版本补丁放到游戏目录下,注意给版本补丁一个单独的文件夹。补丁里面是加密的,只有通过密码打开才能看到图片这里开始架设微端服务器,把引擎包里面的微端解压出来。里面有一个微端服务器和微端网关。一般使用x32位的。打开文件。开始配置。客户端路径是刚刚安装的游戏客户端路径。登录器连接地址是自己租...

2022-05-13 21:51:15 4082 4

原创 GameofMir引擎架设传奇服务器【3:在服务器上架设引擎】

工具:1.一个免费开源的服务器操作工具一、租用服务器这里可以用腾讯云或者阿里云,这里我只是为了练习和测试,所以租用了一个便宜的。租用服务器,租用一个月。购买后给服务器装个系统系统选择自己喜欢的就好。我这里已经租设好,一定要注意记住的用户名和密码,还有服务器IP地址。二、连接服务器使用服务器工具,安装完成后打开。新建立一个连接。输入IP地址和用户名和密码就可以连接。 连接完成后打开服务器。然后按照前面...

2022-05-13 20:22:07 1945

原创 GameofMir引擎架设传奇服务器【2:登录器配置】

工具:1.gom引擎自带的登录器(这里没有自带的登录器,游戏运行不了,里面带有一些密码和UI相关的文件)2.绿盟配置器(当然也可以用其他的,这里使用的绿盟的免费版本)都解压后开始配置这里进入绿盟的文件夹,把这几个文件复制到gom自带的登录器里面。然后这里把这里key文件夹的key复制到gom自带的登录器里面,和服务端的Mir200下面这里是因为原来gom引擎是收费的,这里不同的key对应的功能不同,这里key4的功能最全。注意两个地方放的k...

2022-05-12 23:23:09 7962 1

原创 GameofMir引擎架设传奇服务器【1:架设服务端】

工具:11.64位的DBC数据库,数据库是用来存储,怪物、技能、和装备的。2.引擎服务端,用来架设服务。一、安装数据库解压服务端的安装包,因为其默认的路径是在D:\盘,所以最好解压在D盘,以免出错然后安装数据库打开后直接一直下一步下载。安装完成后在控制面板中找到刚安装好的数据库。打开后新建立一个数据库叫HeroDB对应服务端要使用的数据库。然后连接数据库文件的路径,路径在服务端文件夹下面这里可以看到三个数据库文件,分别是技能...

2022-05-11 18:49:17 2735 2

原创 单链表初级OJ题【C语言】

typedef struct ListNode { int val; struct ListNode* next;}ListNode; //节点void PrintList(ListNode* head){ while (head!=NULL) { printf("%d->",head->val); head = head->next; } printf("NULL\n");} //打印每个节点数据一、删除节点给你一个...

2022-05-01 16:00:46 1040

原创 链表-单链表【C语言】

对于顺序表来说,虽然各个数据之间地址是连续的,查找起来效率高,但是插入数据的话要改变数据的位置,效率比较低。所以用'链表'来弥补顺序表的劣势,如果以后动用的数据插入的操作比较多,就可以使用'链表'这种数据结构来提升效率。一、单链表 单链表是一个节点指向下一个节点,只有一个指针且指向下一个节点。尾节点指向空。typedef struct SListNode{ SLTDateType data; struct SListNode* next;}SListNode...

2022-04-26 22:23:44 1570

原创 时间复杂度和空间复杂度【C语言】

时间复杂度和空间复杂度,是用来评估算法的运行效率的,以此评估算法的优劣程度。不需要特别准确的计算,是一个估算值。一、时间复杂度算法中的基本操作的执行次数,为算法的时间复杂度。二、三、...

2022-04-21 22:54:54 1456 2

原创 字符串匹配——KMP算法【C语言】

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)一、暴力算法int BF(char *chang,char *duan){ int c_strlen=strle...

2022-04-17 23:29:28 6911 1

原创 【练习题】替换一个字符串中的空格为“%20“

题目:替换一个字符串如,"We Are Happy."中的空格为"%20",使其字符串变为,"We%20Are%20Happy."。题目解析:首先要想到的是要扩大字符串的空间,其要保证原先给与的字符串要能修改有要有扩容的空间。然后因为一个空格就替换成三个字符,但是包括其空格字符要被替换,其实相当于一个空格多扩容两个空间。先判断有多少空格,然后扩容字符串。 使用两个指针,一个指向原字符串结尾end1,一个指向扩容后的空间的末尾end2,开始把前...

2022-04-13 21:14:26 443

原创 预处理和宏定义【C语言】

任何一个ANSI C,都有两个环境,一个翻译环境一个运行环境。 运行环境相当于windows,翻译环境相当于编译器。一、程序的编译和预处理: 一个程序从代码到执行程序,要进行一系列复杂的工作,在vs2022的编译器中,这些工作都我们完成了。都这里只简单讨论其执行步骤(如果想深入了解推荐《程序员的自我修养》)。 vs2022是集成开发环境(IDE),其内部集成和编译器(cl.exe)和连接器(link.exe),...

2022-04-11 22:15:46 1786

原创 【C语言】文件操作

因为数据只存储在内存中,程序结束后数据就被摧毁了,为了能够数据持久化的保留,这里就需要把数据存储在文件中,需要的时候就直接从文件中读取出来。一、文件指针 在内存中专门有个个文件应用区,来进行文件的交互,使用FILE*类型的指针控制,FILE *是个结构体类型的指针。struct _iobuf { char *_ptr; int _cnt; char *_base; int ...

2022-04-10 21:32:03 1296

原创 malloc、calloc、realloc【动态内存分配】和常见错误

在内存中有栈区、堆区、静态区,一般在函数的参数和变量都在栈区生成,但是栈区是有一定大小的,如果使用的栈区空间太多,会内存溢出。编译器也会提示把数据转到堆区存储 。堆区的大小很充裕,但是需要使用者手动申请。PS:要注意一点在函数内开辟的堆区空间,出了函数也不会被销毁,必须使用free()释放掉。这点跟栈区有点不同。一、二、三、四、...

2022-04-08 23:24:17 1000

原创 通讯录程序的实现【C语言】

实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联系人一、基础框架 使用多文件编程的写法,把方法的具体实现和声明和分开编写。1.界面设计先设计一个界面,其他的功能先写入分支循环中main.cpp:#define _CRT_SECURE_NO_WARNI......

2022-04-05 17:43:54 1791 1

原创 结构体大小的计算【C语言】

结构体是用来描述一个复杂对象的,比如一个人有身高、体重、年龄、姓名等,光只用一个数据类型不能完全表达出来。但是使用结构体类型,在结构体中定义多种类型的变量,就可以恰当的来描述''人''这个复杂对象。一、struct 特点和注意事项1.结构体定义struct stu1{ int num; char name[20]; double score;}s1;struct stu2{ int num; char name[20]; double score......

2022-04-05 00:46:50 2706 2

原创 内存操作函数memcpy、memmove

memmory:记忆。在计算机这个词的含义就是内存。简写为mem。一、memcpyvoid * memcpy ( void * destination, const void * source, size_t num );函数把源地址的内存,按字节拷贝到目标地址的内存上,直到num个 参数和返回值是void*的类型,所以可以接受任意指针类型的实参。模拟实现:void* my_memcpy(void* des, void* src,int num){ assert..

2022-04-03 18:53:54 703 2

原创 字符函数和字符串函数

理解并熟练字符和字符串函数的工作原理,学会如何使用和一些注意事项一、strlensize_t strlen ( const char * str );strlen是一个用来计算字符串长度的函数。 字符串的结束标志为'\0',返回'\0'前面字符的个数,不包括'\0'。但是一个字符数组没有'\0',那么返回的长度则是一个随机值。 要注意strlen函数返回是一个size_t的整数,是无符号的。 要注意如果一个整形跟无符号整形做计算其结果也是符号的。(如果为负数,则会变成一个非常大的正数.

2022-04-01 23:52:42 357

原创 指针进阶、指针试题

通过一些试题来学习和进一步来熟练指针。判断这里printf函数的输出,并分析这样输出的因一、整形数组注意:在x36位系统中,指针的大小是4字节。在x64位系统中指针大小是8字节数组名: 1.sizeof(arr) ,这里arr表示的是整个数组。 2.&arr,这里也是表示取的整个数组的地址。 然后其他的数组名,都是表示数组首元素地址。int a[]={1,2,3,4};1: printf("%d\n",sizeof(a));2: printf(...

2022-04-01 00:04:23 433

原创 函数指针和函数指针数组

函数指针:指向函数的指针。函数指针数组:一个数组里面存的类型是函数指针。一、函数指针的声明和调用1.指针声明:函数指针顾名思义就是一个指向函数的指针。int Add(int x,int y){ return x+y;}char* Sub(char*){ }//声明函数指针并初始化int (*Add)(int ,int ) ptr=&Add;char* (*Sub)(char*) prt_char=⋐这里声明了两个函数指针.

2022-03-28 18:31:51 8162 1

原创 数组指针 和 指针数组

在C语言中,指针是个神奇的东西,在window底层对指针的妙用无处不在。这里来总结数组针指的小结。在内存里面系统就是通过指针来寻找数组的每个元素的。一、数组指针1.一维数组:数组指针:指向一个数组的指针。int arr[]={1,2,3,4,5,6,7,8,9};这里有个整形数组 arr,这里我们知道arr是数组名,也是地址首元素的地址。 那么能不能定义一个指针来指向这个数组并调用数组里面的元素呢。 其实是可以的。那么指针的类型是什...

2022-03-27 18:07:05 2129

原创 浮点数在内存中的存储规则

引子: 阅读一段函数: int n = 9; //以整数的形式存储 float* pFloat = (float*)&n; printf("%d\n", n); //输出 9 printf("%f", *pFloat); //输出 0.000000 这里以 浮点形式读取 *pFloat = 9.0; //以浮点的形式存储 printf("%d\n", n); //输出 1091567616 //以整数的方式读取 print...

2022-03-20 20:23:58 1392

空空如也

空空如也

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

TA关注的人

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