自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】智能指针

【代码】【C++】智能指针。

2025-03-25 23:35:37 252

原创 【C++】回调函数和回调对象

【代码】【C++】回调函数和回调对象。

2025-03-25 18:31:37 321

原创 【Linux】事件处理模式

文章目录服务器框架Reactor模式Proactor模式同步I/O模拟Proactor模式服务器框架I/O处理单元:处理客户连接、读写网络数据逻辑单元:接收数据后应该做什么例如解析数据、封装响应数据请求队列:各个单元的中介即通信方式服务器通常要处理三类事件:I/O事件、信号事件(signal/sigaction)以及定时事件(alarm/setitimer),结合I/O多路复用和多线程/多进程,有两种高效的事件处理模式分别是应用于同步的Reactor模式和应用于异步的Proactor模式Re

2024-06-13 18:55:50 319

原创 【Linux】I/O多路复用

【代码】【Linux】I/O多路复用。

2024-06-12 11:01:29 932

原创 【Linux】Socket编程基础

通信类型控制套接字如何传输和处理数据,数据以包的形式传输。

2024-06-08 13:57:45 741

原创 【Linux】多线程基础

【Linux】多线程。

2024-06-06 14:01:51 500

原创 【Linux】多进程基础--信号

【代码】【Linux】多进程基础--信号。

2024-06-04 12:33:04 420 1

原创 【Linux】多进程基础

管道中有数据则read返回实际读到的字节数,若管道中无数据:若写端全部关闭则read返回0相当于读完若写端没有完全关闭则read阻塞管道读端全部被关闭,则进程异常终止若管道读端没有全部关闭:管道已满则write阻塞管道未满则write将数据写入并返回实际字节数。

2024-06-03 19:04:33 744

原创 【Linux】文件IO基础

文件IO基础

2024-06-03 10:33:21 363

原创 【Linux】静态库和动态库

动态库在程序链接阶段代码不会复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用,不同程序使用动态库可以直接使用加载到内存的动态库中即可,实现进程间资源的共享。静态库在程序链接阶段把静态库中的代码直接复制到了程序中,每个程序需要使用到该静态库时都要链接一次。程序加载快,但是很消耗资源,部署麻烦。

2024-06-02 19:53:50 551

原创 【Linux】GNU编译器基础-GDB

告诉编译器在编译时加入调试信息,这样gdb才能调试这个被编译的文件,同时使用。GDB调试:gdb调试的是可执行文件,在编译时加入。显示所有的警告信息。

2024-06-02 13:37:50 345

原创 【Linux】GNU编译器基础

常见的GNU编译器是GCC其包含gcc以及g++等,适用于C/C++中,在Windows系统中通常使用IDE进行程序的编写和编译、链接等操作,但在Linux系统中通常使用GNU编译器来进行,对于C/C++等高级语言需要进行预编译、编译、汇编、链接最后才能生成可执行文件使用。命令进行自动编译,当前目录下使用make命令会自动进入Makefile文件并按照其中规定的规则进行编译。所以使用Makefile文件对编译的规则进行封装,指定不同源文件的编译顺序以及编译规则,最后使用。依赖则是生成目标所需要的文件例如。

2024-06-02 00:25:35 654

原创 【C++】Socket编程基础

通信类型控制套接字如何传输和处理数据,数据以包的形式传输。

2024-05-31 17:58:07 687

原创 【Linux】Linux基础(目录结构、基本权限、基本命令)

对于文件a.text为用户组添加写权限,同时也有数字法更改权限。表示所属的用户u和用户组g且该用户和用户组的权限都是。即可写可读可执行,其他用户o的权限为。只可读和执行不可写,5月30 23:24。

2024-05-31 15:13:36 1473 1

原创 【MySQL】Linux环境下MySQL基本操作

MySQL基本SQL语句

2024-04-22 14:10:30 3837

原创 【Linux】MySQL的安装及配置(Ubuntu-18.04)

2.通过系统的默认配置先登录MySQL,密码输入系统分配的默认密码J9fhynK7XZBjqwXA,登陆进入后再进行密码的修改、权限的更新及刷新。1.查看默认配置文件,此处的user和password为默认提供的,后边需要进行修改。分别安装MySQL服务器、MySQL客户端、C/C++开发库。3.重启后用新用户名和新密码登录查看更改是否成功。

2024-04-21 23:08:04 503

原创 【Linux】虚拟机与Xshell及VS Code的连接

1.在使用Xshell以及VS Code时,都需要使用SSH协议,同时需要获取虚拟机的IP地址,进入系统后IP地址可以通过设置中的网络详细信息来获取,同时保证虚拟机的虚拟网络编辑器NAT模式的子网与当前IP地址在同一个网段,若不在一个网段则需要更改。2.配置好插件重启后点击远程资源管理器,点击SSH的设置按钮,选择默认的config文件进行配置,HOST 名称、HOSTNAME IP地址、USER 用户名,保存刷新后输入密码连接即可。虚拟机:VMware Workstation Pro。

2024-04-21 18:35:00 2213

原创 【C++】STL函数对象适配器的使用

如果函数对象仅有一个输入但是需要多个输入,例如可采用函数适配器bind1st和bind2nd绑定要输入的参数即可,同时。需要我们自己的函数对象继承binary_function(二元函数对象)或者 unary_function(一元函数对象)。函数指针适配器ptr_fun( )可以把一个普通的函数指针适配成函数对象,从而使用。

2024-04-18 23:57:40 211

原创 【C++】C++11新特性

无需再拷贝一份,大大提升效率。例如某个函数返回对象时,寄存器需要有临时对象来接受,此时会调用一次拷贝构造函数,此时该临时需要赋值给新的接受对象则需要再调用一次拷贝构造,效率低下,使用右值引用寄存器中的临时对象进行语义转化,新对象接受时不用调用拷贝构造函数。,auto_ptr、unique_ptr、shared_ptr这三个智能指针模板类都定义了类似指针的对象,可以将new获得的地址赋给这种对象,当智能指针过期时,的方式,当引用计数为0时才进行析构,很好的解决了该问题,旧指针和新指针都可以使用。

2024-04-18 14:22:35 1947 1

原创 【C++】vector、list、set、map容器在自定义类型时进行排序以及map按照实值排序

【代码】【C++】vector、list、set、map容器在自定义类型时进行排序以及map按照实值排序。

2024-04-14 11:51:16 195 1

原创 【C++】vector容器概述

vector的数据安排以及操作方式,与数组非常相似,两者的唯一差别在于空间的运用的灵活性。数组是静态空间,一旦配置了就不能改变,vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素。

2024-04-11 20:53:59 461 1

原创 【C++】STL概述

STL提供六大组件:容器(Container)、算法(Algorithm)、 迭代器(Iterator)、仿函数(Function object)、适配器(Adaptor)、空间配制器(Allocator)。STL是一个标准模板库,广义上分为:容器、算法、迭代器,STL几乎所有代码都采用模板类或者模板函数,容器和算法之间通过迭代器进行无缝衔接。容器通过空间适配器获得数据存储空间,算法通过迭代器存储容器中的内容,仿函数协助算法完成不同策略的变化,适配器可以修饰仿函数,而又无需暴露该容器的内部表示方式。

2024-04-11 10:51:08 346 1

原创 【操作系统】用户态与内核态的转化、中断、系统调用

【操作系统】用户态与内核态的转化、中断、系统调用

2024-03-28 18:14:52 1566

原创 【C语言】拓扑排序——求图所有顶点入度及拓扑序列

设置入度数组记录各个结点入度,遍历图中的所有结点,若当前结点有邻结点,则更新其邻结点入度数组。利用栈将所有入度为0的结点进栈。最后判断输出个数和图中的结点个数即可。顶点表示活动,弧表示活动间关系的有向无环图。

2024-03-27 14:34:19 486

原创 【C语言】归并排序——分治思想的典型应用

归并排序是分治思想的典型应用,其主要思想为不断的将相邻的两个有序的子序列合并从而得到一个完全有序的序列。具体实现为先分后治,其将输入的待排序列分割为若干个子序列,直至每个子序列只有一个元素,此时每个子序列默认有序,再不断的将相邻的两个有序的子序列合并从而得到一个完全有序的序列。

2024-03-27 02:11:18 260

原创 【C语言】选择类排序之简单选择排序、堆排序分析及输出每趟排序的结果

【C语言】选择类排序之简单选择排序、堆排序分析及输出每趟排序的结果

2024-03-26 17:53:09 625

原创 【C语言】交换类排序之冒泡排序、快速排序分析及输出每趟排序的结果

【C语言】交换类排序之冒泡排序、快速排序分析及代码输出每趟排序的结果

2024-03-26 13:12:33 534

原创 【C语言】插入类排序之直接插入排序、折半插入排序、希尔排序分析及输出每趟排序的结果

【C】插入类排序之直接插入排序、折半插入排序、希尔排序分析及代码输出每趟排序的结果

2024-03-26 00:11:20 983

原创 【C语言】利用BFS广度优先遍历求单源最短路径

【代码】【C语言】利用BFS广度优先遍历求单源最短路径。

2024-03-23 23:59:58 421

原创 【思想】B树的性质、定义以及插入删除

B树中所有结点的子树高度相同(平衡二叉树则规定左右子树高度差最大为1)若根节点不为终端结点则至少有两颗子树除根节点外所有的非叶结点至少有m/2-1个关键字即至少有m/2颗子树(分叉)所有叶结点均在同一层(叶结点为失败结点,实际不存在,而含实际数据的最下层结点称为终端结点)所有关键字左侧的子树值均小于该关键字,右侧的子树值均大于该关键字。

2024-03-23 15:52:54 411 1

原创 【C语言】图的深度优先遍历(递归、非递归、邻接矩阵、邻接表实现)

图的深度优先遍历类似于树的先序遍历,可以利用递归不断地访问当前结点的首个未被访问的邻结点,同时需要设置访问数组来标志每个结点的访问情况,防止被多次访问。

2024-03-22 23:17:45 929 1

原创 【思想】红黑树的定义、性质以及插入操作

【代码】【思想】红黑树的定义、性质以及插入删除。

2024-03-22 14:43:23 251 1

原创 【C语言】图的广度优先遍历算法

图的广度优先遍历算法类似与树的层序遍历,都需要借助队列来完成,但不同的是因为图中的数据元素之间的关系是多对多的,所以需要设置访问数组来表示每个数据元素是否被访问过,防止二次访问。即不断遍历访问当前节点及其所有未被访问的邻接点,直至无未被访问结点,再从这些邻接点开始出发遍历。

2024-03-21 22:16:18 896 1

原创 【C语言】PTA-L1-003 个位数统计

要统计输入数的个位数出现次数,即要对该数的每一位都进行比较操作,可以将该数看作字符串存在数组中,方便对每位数进行对比,同时需要存放不同个位数的具体数目,借助一个数组即可。最后根据要求打印其内容。:输入一个K位的数,编写程序统计每种不同的个位数字出现的次数。

2024-03-21 21:29:17 537 3

原创 【C语言】单链表的就地逆置/反转单链表

单链表的反转/逆置可以利用头插法的原则,将原单链表的每个元素重新插入即可。

2024-03-07 20:30:09 264 1

原创 【思想】栈的应用之括号匹配以及表达式转化及求值

利用栈进行前、中、后缀表达式之间的转化及计算的思想

2024-03-06 18:31:24 240

原创 【C语言】灵活内存管理方式(动态分配):malloc、free、calloc、realloc

灵活内存管理方式(动态分配):malloc、free、calloc、realloc

2023-03-28 23:59:12 192

原创 【C语言】快速排序输出排序前后以及每趟排序的结果

【代码】【C语言】快速排序输出排序前后以及每趟排序的结果。

2023-03-24 17:43:27 2932 5

空空如也

空空如也

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

TA关注的人

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