
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
这一模块主要提供建立索引,以及收到用户的发起的http请求通过Get方法提交的搜索关键字,然后对关键字进行分词,先在倒排索引中查找到对应关键字的文档ID,然后在正排索引中根据文档ID,找到多个相关文档内容,拼接返回给用户。这里使用到了Josn库,Jsoncpp 库用于实现 json 格式的序列化和反序列化。安装Json库上面代码还有一个问题!如果你有一个文档是 :今天晚上吃米饭。分词:今天/晚饭/

floodfill算法又叫洪水灌溉或者洪水淹没啥的,这个算法比如有一个区域,负数表示低谷,0表示平原,正数表示山峰。此时发大水把这些区域淹了。其中平原和山峰可能不会改变,但是低谷水位就要上升。这种类型题目就是,我们要在这个区域中找出水位会上升的区域或者说找到会被洪水淹的区域。其实这道题说白了就是把性质相同的一个连通块找出来。比如这里就是把所有是负数的连通块找到,注意只能上下左右相连,斜着不能连!f

这是一篇万子以上的博客,本文更准确的说可以算上二叉树的进阶,详细讲解的二叉搜索树的插入,删除,查找,以及递归查找,递归删除,递归查找和构造,析构,拷贝构造,以及赋值重载,详细讲解什么是K模型,什么是KV模型,以及二叉搜索树应用场景,以及二叉搜索树性能分析

内查找适合用于数据量相对不是很大,能够一次性存放在内存中,进行数据查找的场景。如果数据量很大,比如有100G数据,无法一次放进内存中,那就只能放在磁盘上了,如果放在磁盘上,有需要搜索某些数据,那么如何处理呢?那么我们可以考虑将存放关键字及其映射的数据的地址放到一个内存中的搜索树的节点中,找数据时比较关键字,找到关键字也就找到这个数据在磁盘的地址,然后去这个地址去磁盘访问数据。

什么是文件,文件指针,文件操作函数等等
本篇文章主要是介绍http协议,首先从宏观角度认识http协议请求和响应的结构,http协议请求和响应如何拿到完整的报文呢?序列化和反序列化怎么做?我们以写代码的方式具体认识http协议的基本工作流程加深对它的理解,代码写完我们在看http协议的报头、状态码、方法等等才更容易一些,然后我们在学习长连接,和session会话保持,最后我们在介绍两个学习http的工具。

这篇文章是整个网络通信的最后一层数据链路层,我们主要学习MAC帧,虽然IP具有将数据跨网络送到目标主机的能力,但是在跨网络送之前是如何解决同一个局域网内送到下一跳路由器呢?我们要了解局域网通信的原理,以及通信的细节问题。还要站在上帝视角我们知道下一跳路由器的MAC地址,但是在网络中一台主机是如何知道路由器的MAC地址呢?所以这需要一个过程,从而引出ARP协议。学完这些我们把之前学到的所有协议结合起

RabbitMQ 是一个基于 AMQP 协议的消息队列组件,用于实现客户端之间的消息传输。它通过交换机、队列和绑定等核心概念,提供灵活的消息转发功能。RabbitMQ 解决了传统直接通信的安全性和效率问题,通过消息队列服务器作为中间层,确保消息的可靠传输。安装 RabbitMQ 包括服务器和 C++客户端库 AMQP-CPP 的配置,AMQP-CPP 支持多种网络通信模式,如 TCP 和异步通信组

webbench测试原理是,创建指定数量的进程,在每个进程中不断创建套接字向服务器发送请求,并通过管道最终将每个进程的结果返回给主进程进行数据统计。假设现在12345描述符就绪了, 在处理1的时候花费了30s处理完,超时了,导致2345描述符因为长时间没有刷新活跃度。给服务器发送一个数据,告诉服务器要发送1024字节的数据,但是实际发送的数据不足1024,查看服务器处理结果。超时连接测试1:创建一

这个模块是一个HTTP请求接收的上下文模块,主要是为了防支在一次接收的数据中,不是一个完整的HTTP请求,则解析过程并未完成,无法进行完整的请求处理,需要在下次接收到新数据后继续根据上下文进行解析,最终得到一个HttpRequest请求信息对象,因此在请求数据的接收以及解析部分需要一个上下文来进行控制接收和处理节奏。当服务器收到了一个请求,就在请求路由表中,查找有没有对应请求的处理函数,如果有,则
