自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解 TCP 三次握手及数据传输中的序列号与确认号

在研究这幅图的过程中,可能大家会像我一样,对某些序列号产生疑问。比如为什么有时显示的序列号和我们预想的不一样呢?这可能是因为在三次握手完成后到实际数据传输间,存在额外的数据发送操作,导致序列号递增;也可能是工具显示的是相对序列号而非实际序列号。通过对这张图的深入解读,我们更加清晰地认识到 TCP 协议中序列号与确认号在保障网络通信可靠性方面的关键作用。它们就像精密仪器上的齿轮,环环相扣,每一个转动都关乎数据能否准确抵达目的地。

2025-04-06 15:39:30 451

原创 基于 C++ 的线程池实现及使用详解

Thread类和ThreadPool类。Thread类代表一个线程,封装了线程的创建和启动操作;ThreadPool类则是线程池的核心,负责管理线程的生命周期、任务队列的维护以及任务的分配和执行。cpp// 单位 s引入了一系列必要的头文件,用于实现线程池所需的各种功能,如多线程同步、内存管理、任务封装等。定义了三个常量::任务队列的最大容量,当任务队列中的任务数量达到该值时,新的任务提交可能会失败。:线程池中的最大线程数量,用于限制线程池的并发程度。

2025-03-12 20:19:30 742

原创 线程池(大解)

c++线程池其实大体意思很好理解,但是具体分析到代码上非常难懂,尤其对于初学者而言,设计很多c++11 c++14的标准,很复杂,但是如果弄明白了,多线程编程的水平就开始有起色,作者将来会出一个视频专讲线程池,作者水平不高,所以学的时候非常难懂,找各种资料,与ai对话,现在总算是弄明白了,希望大家不要走弯路,以后会讲一个视频的。

2025-03-04 14:06:00 202

原创 左右值引用的代码举例,引用折叠

利用vector容器的源代码,写了一个vector的成员函数push_back的时候,对左值引用还是右值引用的例子。

2025-02-25 21:44:32 69

原创 SGI STL内存池源码(无各种宏定义,纯C++风格)

【代码】SGI STL内存池源码(无各种宏定义,纯C++风格)

2025-02-25 12:19:16 101

原创 C++设计模式,绝对会懂(有设计前后对比),持续更新

当主题对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。用一个类为基类记为类A,继承自A的子类B,C,然后在另外一个单独的C类中的成员变量就有vector这里的A*其实可以是B,也可以是C,因为父类指针可以指向子类对象,不管是B还是C,假设类此时A类写了一个虚函数virture update()函数B和C重写update函数,将来C类中的vector在进行访问容器中每个元素更新的时候(记住元素是B或者C)会调用对应B或者C自己类里写的update函数,代码如下。

2025-01-05 16:41:51 358

原创 如何利用高精度求1!+2!+.....+n!

首先对于每个阶乘来说都要用到高进度乘法,然后对于各个阶乘之间需要用到高精度加法,所以掌握这个类型,就基本掌握高精度这个算法了。

2024-12-09 15:53:25 126

原创 高精度求阶乘(最易懂)

题目输入一个n(n<=50)求1-n的阶乘和,例子:输入5,那就要输出1!解答分两部分,第一部分的数组chen就某个单独数的阶乘(高精度乘法),add数组就是把chen加到add里(高精度加法),是一个很综合的题,本题是洛谷p1009的一道普及题,高精度处理很怕bug,我也是调了很久。

2024-11-06 15:23:51 135

原创 Dijkstra算法详解

Dijkstra算法的前提是每个边的都是正数,如果有负数的情况那就不适用。

2024-09-26 18:32:07 227

原创 链表数据结构以及指针

虚拟头结点在处理head节点的操作时经常用到,如果不用虚拟头结点,可能得分情况讨论,如删除操作,我们知道在删除一个节点的时候是需要用前一个节点来操作,使得前一个节点的next=next->next,而在处理head时候,由于没有之前的节点,所以创作一个虚拟头结点dummy就非常要必要而且省去了分类讨论,具体代码模拟如下。如图,dummy就是这个ListNode类型的变量,不是指针类型,所以给*first赋值的时候需要对。2.如果题目是删除倒数第n个节点,如果恰好是头结点,那么也必用dummy。

2024-08-28 21:04:56 266

原创 二叉树快速前序创建和前序读取

【代码】二叉树快速前序创建和前序读取。

2024-05-07 18:50:55 175 2

原创 房屋租赁管理系统

任务不是一帆风顺的,一个人或许很难写出完美的函数,但是我们相互总结,交流经验,最后拼凑出来的360行代码.

2023-12-27 15:56:28 1847 2

原创 对于string,vector,set的erase和find以及输入的用法

解释都在代码里,示例才是最好的老师。

2023-12-13 23:16:40 51 1

原创 set,vector,string中的find,erase,输入各有不同

作者测试完很累了,解释都在代码里。

2023-12-13 18:55:01 57 1

原创 关于C++常用库函数

单纯用max和min只能传入两个数,例如max(4,9)或者一个列表min({1,5,8,7,6,5});不能传入数组,传入数组可看如下操作。lower_bound:返回第一个大于等于x的地址,因为是地址,所以需要减去首元素地址。upper_bound:返回第一个大于x的地址,也要减去首元素地址。上面是对于容器的解法,下面是对定义一个数组的示例。sort包含于头文件。

2023-12-11 23:36:17 73 1

原创 C++中string头文件的一些库函数的的用法(作者自己给自己看的,想需要详细的知识别来我这里)

int main()cout

2023-12-11 18:40:41 187 1

原创 有坚持的勇气,才有成功的喜悦

最简单的成功,最高级的快乐

2023-10-02 21:35:37 59 1

空空如也

空空如也

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

TA关注的人

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