自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习之路纪念

仅仅只是记录一下我的学习生涯,仅此而已。

2026-01-12 16:39:11 578

原创 C++AI

本项目带领大家从零实现C++AI大语言模型接入SDK

2026-01-02 14:00:11 1032 1

原创 手把手教你vs动态库的封装与使用

手把手教你用vs封装动态库和使用,并解释了一下导出宏和extern "C"的作用。

2025-11-10 16:57:15 1028

原创 go strconv包介绍

包 strconv 实现与基本数据类型的字符串表示形式之间的转换

2025-10-24 11:13:10 1036

原创 Asio tcp通信接口详解

这篇文章主要介绍了 Boost.Asio 库中几个常用接口的功能和使用方法,包括 io_context、socket、endpoint 以及读写操作。

2025-09-25 14:17:06 1040

原创 利用计时器了解Boost Asio

利用计时器了解Boost Asio

2025-09-24 10:59:15 901

原创 go语言并发

go语言并发与channel学习

2025-09-22 14:59:08 1027 1

原创 即时通讯项目---总结篇

本篇是我介绍Chat-Im(仿微信的即时通讯项目)的总结篇,主要介绍一下这个项目服务端的编写流程,以及所需要学习的一些前置知识,以及给这个项目做个完结。目的是给想要看着我的gitee和博客独立完成这个项目的朋友们指明方向,避免出现看着gitee上万行的代码都不知道从哪里开始看的情况。

2025-08-24 09:48:00 724

原创 即时通讯项目---网关服务

本模块主要介绍即时通讯项目的网关部分,其它微服务完成以后,网关部分主要处理各种服务的请求,网关层根据请求服务的不同,去分别调用对应的微服务进行处理,然后给客户端返回结果就行。

2025-08-20 16:49:02 1268

原创 即时通讯项目---好友管理子服务

本模块主要介绍即时通讯项目有关好友管理这部分内容。主要设计好友添加、删除、获取好友列表、创建会话等等一系列操作。

2025-08-08 15:34:40 684

原创 剑指offer67道算法题速刷(C++)

剑指offer67道算法题,附带题目链接与代码。

2025-08-06 14:17:45 779

原创 即时通讯项目---消息持久化子服务

本模块主要介绍消息持久化这部分内容,主要是当新消息发送之后,消息转发模块会把消息存到mq中,而本模块要做的就是从mq中读取消息内容持久化到mysql中,并提供消息记录的查询功能。

2025-08-04 13:49:20 421

原创 即时通讯项目---etcd、spdlog、odb二次封装

本篇主要介绍etcd.hpp logger.hpp mysql.hpp三个通用文件的封装。

2025-08-03 17:59:22 835

原创 即时通讯项目---消息转发子服务

本篇主要介绍消息转发子服务的实现,具体来说就是client在一个聊天会话中发送了一条消息,server收到之后就要把该消息转发给聊天会话中的人。该服务要做的就是找到聊天会话中有些谁,然后交给网关服务去逐个进行消息转发。

2025-08-02 17:34:47 689

原创 即时通讯项目---用户管理

本篇主要是对于该项目的用户管理模块做一个文档说明,即登录用户自己的一些信息进行管理,比如说登录用户的注册登录服务,用户名、密码、签名、头像等等的一些操作进行处理。

2025-08-01 18:28:43 896

原创 ChatIm项目文件上传与获取

ChatIm项目文件服务模块

2025-07-26 18:40:26 811

原创 brpc的安装与使用介绍以及channel的封装

brpc在ubuntu24.04的安装与使用介绍,rpc调用流程介绍,以及channel的封装

2025-07-20 17:03:35 1018

原创 ChatIM项目语音识别安装与使用

这是一个ChatIM的项目,有兴趣的伙伴可以照着我的博客和gitee进行完成gitee链接:https://gitee.com/qi-haozhe/chat-im。

2025-07-20 14:49:18 990

原创 Go语言反射机制详解

go语言反射机制

2025-07-08 20:22:20 826 1

原创 Lua中table、模块、元表和元方法

Lua中table、模块、元表和元方法的学习与使用

2025-05-28 17:40:05 1683

原创 Lua基础语法

lua注释、数据类型·、标识符、运算符、函数、循环控制、流程控制语法学习。

2025-05-25 23:14:00 1825

原创 【得物】20250419笔试算法题

【得物】笔试真题训练-20250419

2025-04-22 15:41:26 2611

原创 【盒马】20250412笔试算法题

接下来我们计算当选中白色位置的时候期望如何算,具体思路是,当选中一个W位置(i,j)时,我们就需要看看以(i,j)为基点,当把该位置染成红色之后,上下左右四个方向可以把几个连通块合成一个连通块。我们可以看上下左右四个放下的arr中存的值放到一个set里,set是会去重的,所以最后set里面有几个元素,就说明有几个连通块被合成了一个连通块,本题比较简单,就是输入俩字符串,s和t,保证这俩字符串的字符个数都是偶数,然后把t的后半部分拼接到s后面,然后把s和t的前半部分输出即可。

2025-04-17 11:30:52 817

原创 C++笔试强训18、19、20

如果在父类构造函数中调用虚函数,由于调用构造函数的顺序是先调用父类的构造函数再调用子类的构造函数,所以这个时候子类还没初始化呢,如果形成多态会发生一些未定义的错误,所以就只能调用父类的虚函数,所以不会发生多态。然后调用子类的构造函数,子类构造函数中调用了父类成员函数test,test中调用会使用父类的this指针调用func函数,会发生多态,因为父类this指针指向的是子类对象,所以会调用子类的成员函数func,会。C/D:map、set底层都是红黑树,每个节点之间不是连续的,节点之间是通过指针相连的。

2025-04-14 16:54:19 855

原创 【腾讯云智】20250329笔试算法题

main函数中二维数组直接遍历,如果该位置不为0即有僵尸,且vis[i][j]=false代表没被遍历过,那就直接把vis[i][j]=true,然后tmp=arr[i][j]表示这一个范围tmp即僵尸的初始数量然后++cnt,表示块数+1,然后调用dfs即可。我们可以找打一个最小的数a=3满足6<=2*3<=9,如果a变成2就不满足了,所以最小就是3,然后可以找到一个最大的数b=4满足6<=2*4<=9,如果b=5的话就不满足了,所以b最大只能是4,所以最后输出3 4。

2025-04-13 13:51:56 1369

原创 常见算法模板总结

各类算法模板总结,包括C++、Java、Python三种语言。

2025-04-09 22:13:54 583 1

原创 滑动窗口常见题目

滑动窗口常见套路总结,与部分题目解析

2025-03-24 17:38:49 1080

原创 回溯算法经典题目

回溯算法常见题目

2025-03-22 18:31:25 1040

原创 C++从零实现Json-Rpc框架

RPC(Remote Procedure Call)远程过程调用,是⼀种通过网络从远程计算机上请求服务,而不需要了解底层网络通信细节。RPC可以使用多种网络协议进行通信, 如HTTP、TCP、UDP等, 并且在TCP/IP网络四层模型中跨越了传输层和应用层。简言之RPC就是像调用本地方法一样调用远程方法。过程可以理解为业务处理、计算任务,更直白的说,就是程序/方法/函数等,就是像调用本地方法一样调用远程方法。具体原理不多做解释,简单来说就是客户端A需要运行函数func,得到结果,但是这个函数不在客户端这里,

2025-03-11 17:48:09 1318

原创 从0开始完成基于异步服务器的boost搜索引擎

基于自研muduo库的异步boost搜索引擎项目

2025-03-09 15:36:04 732

原创 C++ map、set、multimap、multiset的介绍和使用

set文档set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。set在底层是用二叉搜索树(红黑树)实现的。

2025-03-08 10:39:21 716

原创 Redis的持久化-RDB&AOF

redis持久化 AOF与RDB过程详解

2025-03-02 13:14:53 1288

原创 C++特殊类的设计

在加锁区域内,再次进行判空检查(第二次检查),这是为了确保在第一个线程进入加锁区域后,如果有其他线程也尝试进入,它们会在第一次检查失败后被阻塞,直到第一个线程完成单例对象的创建并解锁。将该类的构造函数设置为私有即可,因为子类的构造函数被调用时,必须调用父类的构造函数初始化父类的那一部分成员,但父类的私有成员在子类当中是不可见的,所以在创建子类对象时子类无法调用父类的构造函数对父类的成员进行初始化,因此该类被继承后子类无法创建出对象。然而,这种方法虽然简单有效,但在单例对象已经创建之后,每次调用。

2025-02-27 19:50:15 986

原创 MySQL索引概述与使用

MySQL索引基础概念与基本操作

2025-02-24 18:26:05 1181

原创 Linux当中的权限问题

文件权限介绍与管理,普通用户与超级用户介绍与切换,文件掩码,粘滞位等等。

2024-09-27 11:25:47 1002

原创 C++ bitset(位图)的模拟实现

判断方式比较简单,每一个整数的所有比特位,只要有一个为1,那该整数就肯定不等于0,所以,我们可以遍历所有整数,只要有一个整数不等于0,那就说明有1,返回true,否则所有整数都是0,没一个1,返回false。需要注意的是,如果位图没有包含最后一个整数的全部比特位,那么最后一个整数的二进制无论如何都不会为全1,所以在判断最后一个整数时应该只判断位图所包含的比特位。例如,假如我们要建立一个50个比特位的位图,就需要两个int大小,共64个比特位,使用前50个比特位,后14个舍弃不用就好。的大小是否符合预期。

2024-09-25 13:35:12 1112

原创 C++ bitset(位图)的介绍和使用

面试题给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。【腾讯】遍历,时间复杂度O(N)排序(O(NlogN)),利用二分查找: logN单从方法上来说这两种方法都是可以的,但是从内存上来说,这里有40亿个整数,换算一下就相当于16G,也就是说要操作这些数据的话需要占用16G的内存,内存消耗是很大的,所以从内存上来看,这两种方法都是不合适的。位图解决。

2024-09-24 20:03:30 4062

原创 C++笔试强训15、16、17

在同一个作用域内,可以有多个同名函数,但这些函数的参数列表(参数的数量、类型或顺序)必须不同。重载是编译时多态的一种体现。

2024-09-23 13:26:40 1101

原创 Redis中List(列表)类型的常用命令

Redis中List数据类型的常用命令

2024-09-22 12:56:24 1224

原创 Redis中Hash(哈希)类型的基本操作

redis中哈希类型的基本操作

2024-09-20 10:57:16 2647

SGI版本的STL源码

SGI版本的STL源码,侯捷老师推荐版本。

2024-04-29

空空如也

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

TA关注的人

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