自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据链路层 ——MAC

链路层,MAC帧协议,ARP协议,DNS,ICMP,ping命令,traceroute命令,NAT技术,代理服务器等知识点

2024-09-28 20:17:33 1109

原创 网络层协议——IP

IP的报文格式,网络的整体的理解,运营商网络,分片与组装

2024-09-24 19:28:07 1140 1

原创 传输层协议——udp/tcp

UDP/TCP 报文格式,TCP的可靠性机制以及效率机制,全连接半连接,滑动窗口,拥塞窗口,连接管理,延迟应答,捎带应答,流量控制

2024-09-18 20:06:54 933

原创 应用层协议 —— https

本文讲解了https的特点,数据摘要,数字签名,CA证书以及如何进行安全的加密通信

2024-09-13 16:39:06 1221

原创 应用层协议——http

http协议的相关知识,报文格式,状态码,长连接,会话保持以及调试工具

2024-09-11 19:22:15 1230

原创 再谈协议--定制协议

自定义协议以及 Json 的基础使用

2024-09-05 19:34:18 1152

原创 网络编程套接字

本文讲解了网络套接字,以及通信所需的ip和端口号,介绍并使用了 udp 和 tcp 通信的 接口,以及守护进程的概念和实现,最终简单介绍了一些 tcp 的前置知识,为后续的tcp的详解做铺垫

2024-09-02 20:19:56 697

原创 初识网络--网络基础概念

网络的基础知识

2024-08-22 15:40:23 920

原创 Linux 多线程

本文主要讲解Linux的多线程,以及线程的同步与互斥的方案,并用多线程实现了两种方案的生产消费模型,最后利用多线程实现了线程池的设计

2024-08-20 15:52:26 896

原创 C++ IO流

C++标准IO流,文件IO流,序列化和反序列化

2024-08-19 18:41:12 752

原创 C++类型转换

C++四种强制类型转换

2024-08-18 16:09:45 1078

原创 C++ 特殊类设计以及单例模式

C++一些特殊类的设计

2024-08-16 18:10:20 1259

原创 C++ 智能指针

C++智能指针

2024-08-15 18:17:03 1038

原创 C++异常

C++异常及其优缺点

2024-08-14 16:20:10 659

原创 C++11新特性

C++11的部分新特性

2024-08-13 14:44:55 1002

原创 C++ 哈希系列容器 + 位图 + 布隆过滤器

哈希其实本质上就是一种映射,映射的意思就是把你的key值跟对应数据的存储的位置建立一个关联关系,那么只要知道key值,就能根据固定的算法求出该数据所在的位置。我们以前玩过的映射比如说 计数排序或者计数的数组,这些都是简单的哈希映射,他们适合数据范围小,分布集中的数据,但是如果数据十分离散,这种简易的映射就不能是满足需求了。我们上面所说的简易的哈希映射,我们使用的是直接定址法,就是。

2024-07-31 19:59:16 272

原创 Linux 信号

那么如何保存呢?我们只考虑普通信号,编号从1到31,一共是32个信号,同时,我们要保存的是进程是否收到某个信号,这是两态的,也就是只有是(1)和否(0)两种状态。那么进程是不是可以直接用一个 unsigned int 的整型来保存收到的信号呢?一个无符号整型是四个字节也就是32个比特位,每一个比特位都能够用来代表一个信号,而这个比特位的内容(0或1)来代表是否受到该信号,0表示未收到,1表示收到了,也就是把一个无符号整型当成一个位图来用。用一个位图结构来保存信号的收到与否。

2024-07-28 14:25:23 637

原创 Linux - 进程间通信

进程间通信的方式

2024-07-25 15:17:04 870

原创 模拟实现AVL树以及红黑树

在模拟实现AVL树和红黑树之前,我们首先介绍一下set和map这两个容器,因为我们实现AVL树和红黑树就是为了set和map做准备的,但是我们只是稍微了解一下常用的接口,模拟实现的时候则不会实现的跟库一样复杂。setset是一棵平衡二叉搜索树,他不会出现像我们之前说的二叉搜索树的左右极其不平衡的问题,也就是单支树,他是平衡或者接近平衡的一棵二叉搜索树。那么他的搜索效率就是logN,因为它的高度一般来说就是logN左右。

2024-07-20 20:53:37 1048

原创 二叉搜索树

本文讲解了搜索二叉树的基本结构及模拟实现,同时讲解了一些二叉树相关的题目,为下一章节的AVL树和红黑树打基础

2024-07-15 21:15:06 613

原创 C++多态

C++关于多态的知识

2024-07-13 15:40:14 883

原创 模板(补充)+ 继承

C++继承的详解

2024-07-10 16:46:26 982

原创 C++ 栈-队列-优先级队列

1

2024-07-05 18:56:13 1117

原创 C++ list的模拟实现

本文主要讲解了list的模拟实现,以及简单的迭代器类的实现

2024-06-28 21:59:56 893 1

原创 软硬链接 以及 动静态链接

本文讲解了软硬链接以及动静态库的制作与使用,能够帮助你解决关于如何使用第三方动静态库的问题

2024-06-26 19:59:35 824

原创 Linux文件系统

本文主要讲了文件系统的相关知识,详细讲了 inode 以及 数据块以及对应的位图结构

2024-06-14 16:52:41 632

原创 基础IO (Linux文件操作)

本篇文章主要讲的是基础IO,也就是被打开的文件与进程之间的数据之间传送的过程,这属于文件系统的一部分,下一章节还会继续补充文件系统的另一部分,即未打开的文件如何被管理。

2024-06-11 08:00:00 902

原创 demo xshell (程序替换 工作目录 内建命令)

简单的模拟shell,了解一下命令行解释器的原理

2024-06-10 15:27:02 835

原创 Linux 进程控制

进程等待与程序替换

2024-06-04 19:06:22 1023

原创 C++ vector 模拟实现

C++ vector模拟实现

2024-05-29 13:42:01 1004

原创 [Linux] 进程概念

我们直接在命令行定义的变量默认就是bash的本地变量,我们前面说了环境变量是全局变量,那么问题来了,全局变量和本地变量的区别是什么?我们可以写一个代码来了解一下全局变量和本地变量的区别我们发现,当我们将一个本地变量设置成环境变量之后,由这个本地进程bash 派发的子进程mytest.exe竟然也有了这个环境变量,这就是环境变量的全局属性。

2024-05-24 20:59:01 446

原创 Linux基本工具的使用

那么如何将光标从一个文件切换到另一个文件呢?在命令行模式下输入。

2024-05-15 20:55:40 937

原创 权限及权限操作

这就造成了上面我们所看到的权限的。我们的权限中的4表示r权限,2表示w权限,1表示x权限,其他的都是这三个数字组合形式,比如6 就是 r 和w权限。我们不要将上面的权限的去除简单理解为减法,实际的运算是这样的。

2024-05-12 21:05:33 929

原创 Linux 基础命令

如果我们想要提取中间的几行打印应该怎么办呢?比如我们要打印 990-1000这十行,该怎么办呢?我们可以用head和tail指令配合管道来进行head 默认是把前n行打印在我们的显示器上,而如果后面是管道 | 的话,就相当于将提取出来的数据重定向到管道中,然后tail 再从管道中去提取后 x 行,而 tail后面没有接管道了,意思就是到了管道的出口,于是就打印到他的默认的位置也就是显示器中了。

2024-05-08 20:00:46 1204

原创 string 模拟实现

string是用来存储字符类型数据的容器,由于string比STL出现的早,所以在C++官方网string并不在container分类中,但是我们也可以称它为容器。string有两个类模板,我们主要学习的是 basic_string这个类模板实例化出来的 string (basic_string<char>的重命名)类。我们在C语言中学的字符都是以ASCII码的形式来表示和存储的,但是ASCII码只能表示128个字符。

2024-05-03 20:02:22 26

原创 C++模板初阶

而在main.o中,由于没有函数的定义,虽然它调用了模板函数,但是在他的文件里,只有模板函数的声明,没有定义,所以编译器在编译的时候,虽然能够推演出具体的类型,但是他只能替换声明中的T,所以在main.o中,相当于只有函数的声明,而没有实现,所以他的符号表中这个函数关联的是一个无效的地址。在模板上是不能写明具体的类型的,如果写明具体的类型,这就不是模板而是具体的函数了,要做到与类型无关,就需要用一个虚拟类型,而class 和typename 就是虚拟的类型,他么们不是具体的类型。这就是我们下面的类模板。

2024-04-28 22:30:34 840

原创 C++ 内存管理

目录1.内存区域划分2.C语言内存管理方式3.C++的内存管理方式4.operator new 和operator new[ ]5.operator delete 和operator delete[ ] 6.定位new表达式7.内存泄漏在C语言中,我们了解了内存是分区域使用的,栈区存储局部变量,动态开辟内存在堆区,静态和全局变量在静态区,而常量则存储在常量区代码段中的可执行代码是什么呢?我们写了这么多的代码,首先我们要知道我们写的程序平常都是存在文件中的,出现经过编译连接之后形成一个可执行程序,他也是存在磁

2024-04-27 20:50:28 851

原创 类与对象(四)

首先要理解的一点就是,类中的所有成员都会走初始化列表,不是显式就是隐式,所有成员的变量的初始化都是在初始化列表中完成的。这很容易理解,就拿我们上面的日期类来说,我们并没有写初始化列表,但是在进入构造函数体之前所有成员变量都已经初始化了。对于自定义类型的成员变量,我们如果不显式写在初始化列表中对其初始化的话,就会调用它的默认构造进行初始化。

2024-04-26 22:19:11 1048 2

原创 类与对象(三) 拷贝构造与赋值运算符重载

那么对于我们的Date类,编译器自动生成的拷贝构造就能用了,那么我在什么情况下需要我们自己去写拷贝构造呢?我们前面的 Stack 和MyQueue这两个类对于Stack类,如果我们直接用编译器自动生成的拷贝构造会不会出现问题呢?

2024-04-24 22:45:21 1135

原创 类与对象(二) 构造函数与析构函数

为什么编译器对内置类型不做处理呢?因为编译器也不清楚这些变量是用来做什么的,不知道要给他们什么样的初始值才合适,不管怎么样总有情况不会满意,所以编译器也不敢处理内置类型。所以说,自动生成的默认构造函数还是会做事情的,只是对内置类型不处理。对于自定义类型,自动生成的构造函数会去调用该类型的构造函数,这个怎么理解呢?我们可以拿之前的用栈实现队列来举例,我们的队列使用两个栈来完成的。

2024-04-23 20:21:56 1281

结构体应用-通讯录中功能函数的实现

通讯录函数的实现

2024-03-27

C语言 数组的应用-扫雷

游戏函数代码实现

2024-03-13

C语言 数组的应用-扫雷

扫雷游戏函数代码的实现

2024-03-12

空空如也

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

TA关注的人

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