- 博客(98)
- 收藏
- 关注
原创 --图--
在一些应用问题中,需要。在此过程中。适合于描述这类问题的抽象数据类型称为并查集(union-findset)。下边是我画的一个示例图,好好看看如何划分集合的规则存储并查集的数组有如下特点:1.2.3.下边是并查集合并集合的一个示例图这里将例子中的第二个集合合并到第一个集合。这里的并查集变化如上。通常并查集有如下功能:1、查找元素属于哪个集合沿着数组表示的树形关系,向上找到根节点,即数组中该集合表示负数的位置。2、查看两个元素是否属于同一个集合。
2025-04-17 20:06:05
687
原创 visual studio 2022配置和使用jsoncpp
2、在解压文件的makefiles文件下有个vs71,在vs71中有visual studio项目,不过这里的项目是visual studio2008写的,这里打开之前需要升级。升级完成之后,选中lib_json文件夹进行配置,生成想要的库文件。将解压文件夹下的json文件夹拷贝至新建libjson文件下的include目录,下边是json文件的位置。配置运行时库类型,我刚刚生成库文件的时候选择的MTd类型,所以现在也要选MTd类型。将编译的库文件拷贝至新建文件夹得bin目录,下边是生成库文件得位置。
2024-06-28 15:18:28
1584
4
原创 visual studio 2022配置和使用protobuf
上图证明,我真的测了好多遍,测了好多版本的protobuf,花了很多时间。不过好在最后在vs2022上测通了。
2024-06-28 12:27:26
3085
6
原创 boost asio异步服务器(3)增加发送队列实现全双工通信
构造发送节点,管理发送数据。发送节点的类如下。这个发送节点用于保证发送和接收数据的有效性。
2024-06-11 19:57:42
959
原创 boost asio异步服务器(2)实现伪闭包延长连接生命周期
在函数内部实现一个子函数,子函数的作用域内能访问外部函数的局部变量。。但是由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成程的性能问题,可能导致内存泄露。在上次的echo异步服务器中,在极端情况下客户端关闭导致触发写和读回调函数,二者都进入错误处理逻辑,进而造成二次析构的问题。这里,使用C++11构造成一个伪闭包的状态延长session的生命周期。
2024-05-28 16:14:25
1113
原创 boost asio异步api(1)
服务器有一个欢迎套接字,专门用来接收新的连接的。当每次收到新的连接的时候,欢迎套接字就会产生新的普通套接字用来处理这个连接。这里处理每个连接的套接字都会开启一个Session去处理单个连接。
2024-05-16 20:11:24
1271
原创 VMware15安装和Ubuntu搭建
VMware15和ubuntu镜像下载链接:https://pan.baidu.com/s/1tgQ_sIQKbXxe8zPgAXEDmA提取码:489q。
2024-02-28 13:56:15
517
原创 反转链表+牛客
最后,我们得想这个递归的出口条件。1、当输入一个空指针的时候,直接返回2、当输入的链表只有一个节点的时候,也可以直接返回。那么我们可以把一个链表看作两个部分,一个头节点和一个已经完成反转并带有头指针这两个部分。(即递归思想,大化小)这个题目的函数体结构是想传入一个头指针,然后返回反转后的链表的新的头指针。剩下的则只需要将这两部分的链表进行反转即可。
2024-02-28 13:53:40
393
原创 重建二叉树
思路:先序遍历的顺序是根左右,中序遍历的顺序是左根右。也就是说可以通过先序序列的第一个元素确定位根节点位置,在去中序中找到根节点位置,在该位置的左右即为左右子树。
2023-09-12 04:46:51
240
2
原创 tcp连接+套接字编程
TCP的连接是需要四个要素确定唯一一个连接:所以TCP首部预留了两个16位作为端口号的存储,而IP地址由上一层IP协议负责传递源端口号和目地端口各占16位两个字节,也就是端口的范围是2^16=65535另外1024以下是保留的端口,从1024-65535是使用的端口范围。
2023-09-10 22:46:21
760
1
原创 并发内存池(C++)
这个项目是实现了一个高效的并发内存池。它的原型的goggle的一个开源项目tcmalloc,即thread-cache malloc(线程缓存的malloc),实现了高效多线程的内存管理,可实现对系统提供的内存分配函数malloc和free的替代。
2023-09-09 15:24:44
325
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人