- 博客(27)
- 收藏
- 关注
原创 ProtoBuf超详细使用教程
ProtoBuf是Google开发的高效结构化数据序列化工具,支持跨语言数据交换。它通过.proto文件定义数据结构,编译生成目标语言代码,支持消息、枚举、RPC服务等特性。相比JSON/XML更小更快,具备版本兼容性。核心功能包括二进制序列化、跨语言RPC(如gRPC)、字段级兼容更新。C++使用时需定义message结构,通过protoc生成包含get/set方法的类,支持序列化为字符串/二进制及JSON转换。典型应用场景包括网络通信和数据存储,特别适合微服务架构中的高效数据传输。
2026-07-23 21:36:44
184
原创 JsonCpp超详细使用教程
JSON是一种轻量级的数据交换格式,采用键值对和数组结构,独立于编程语言。JsonCpp是C++中处理JSON的核心库,提供高性能的解析和生成功能,支持跨平台使用。核心类包括:Json::Value(数据容器)、StreamWriter(序列化为JSON字符串)、CharReader(反序列化JSON字符串)。文章通过代码示例演示了如何生成和解析JSON数据,展示了JsonCpp的基本用法和语法规则。该库简单易用,适合多种应用场景,如数据交换和配置文件处理。
2026-07-21 21:43:32
234
原创 spdlog高性能C++日志库使用介绍以及二次封装
本文介绍了高性能C++日志库spdlog的核心概念与使用方法。主要内容包括:1) spdlog三大组件:日志器(Logger)、落地器(Sink)和异步线程池;2) 安装方式及基础使用示例(控制台、文件、多输出源);3) 异步日志的高并发优势实现原理;4) 与glog的性能对比测试;5) 生产环境下的二次封装方案,解决原生缺少文件名行号的问题。文章通过代码示例展示了spdlog的高性能、零配置和跨平台特性,特别适合需要高吞吐日志处理的C++项目。
2026-07-20 18:57:22
181
原创 GTest单元测试框架超详细使用教程
文章摘要: GTest是Google开发的C++单元测试框架,支持跨平台运行,提供丰富的断言宏和事件机制。安装简单(Ubuntu下sudo apt-get install libgtest-dev),基础使用包含头文件、初始化框架和RUN_ALL_TESTS()执行测试。通过TEST宏定义测试用例,ASSERT_/EXPECT_系列断言验证结果,支持致命/非致命错误处理。事件机制(全局、测试套件、测试用例三级)自动管理测试环境,示例演示了全局事件的数据准备与清理。该框架能有效提升C++代码的测试效率和可维护
2026-07-19 08:00:00
242
原创 gflags-命令行参数库超详细使用教程
本文介绍了Google开源的C++命令行参数管理库gflags的基本使用方法。gflags通过宏定义简化参数声明,支持多种数据类型,自动生成帮助文档,并能从命令行或配置文件读取参数。主要内容包括:安装方法、基础使用(参数定义、访问和解析)、进阶功能(跨文件访问、多种传参方式、配置文件加载)以及完整示例演示。该库能有效替代手动解析命令行参数,提高开发效率和代码可维护性,是C++项目中处理配置参数的实用工具。
2026-07-18 10:00:22
187
原创 手写 C++ Any 类:深入理解多态与模板
holder:抽象接口,定义统一规范;:模板子类,真正存数据;_content:基类指针,多态+类型擦除核心;拷贝交换法:赋值运算符最优解;RAII:构造申请内存,析构自动释放。
2026-05-27 22:28:56
422
原创 C++之多态的那些事儿(初阶)
首先我们可以先看一段代码public:virtual void BuyTicket() { cout << "买票-全价" << endl;public:virtual void BuyTicket() { cout << "买票-半价" << endl;/*注意:在重写基类虚函数时,派生类的虚函数在不加virtual关键字时,虽然也可以构成重写(因为继承后基类的虚函数被继承下来了在派生类依旧保持虚函数属性),但是该种写法不是很规范,不建议这样使用*/
2024-08-15 22:21:26
1750
原创 顺序表讲解和应用
数据结构由“数据”和“结构”组成,数据顾名思义就是人们根据需要要进行保存的用户信息之类的数据。而结构也就是可以把这些数据进行分类和管理的一种管理工具。我们用.h文件将他们都汇总起来int size;}SL;//头部/尾部 插入/删除//在任意位置插入删除//在指定的位置之前插入数据//删除指定位置的数据。
2024-07-20 19:52:48
331
原创 数列连续求和的最大值(详解版)
1.这里的“连续取出K各个数进行求和”的正确理解是从数列中任意位置开始取K个数。(这就是让我死去的关键一步。2.最大和值所对应的K不一定,可能在不同K值下的取数情况下的最大和值是一样的,这时我们就要取最大的那个K值作为我你们的最后答案。
2023-10-29 14:00:32
1185
3
原创 qsort函数的使用和模拟实现(超详细)
回调函数就是⼀个通过函数指针调⽤的函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅直接调⽤,⽽是在特定的事件或条件发⽣时由另外的⼀⽅调⽤的,⽤于对该事件或条件进⾏响应。
2023-10-24 13:00:02
445
4
原创 sizeof与strlen的区别
1.sizeof 计算变量所占内存内存空间⼤⼩的,单位是字节,如果操作数是类型的话,计算的是使⽤类型创建的变量所占内存空间的⼤⼩。另外,sizeof 只关注占⽤内存空间的⼤⼩,不在乎内存中存放什么数据。2.strlen:是C语⾔库函数,功能是求字符串⻓度。统计的是从 strlen 函数的参数 str 中这个地址开始向后, \0 之前字符串中字符的个数。strlen 函数会⼀直向后找 \0 字符,直到找到为⽌,所以可能存在越界查找。以下面代码为例。
2023-10-22 14:52:15
301
8
原创 准大一新生初次接触计算机后的一些期待
所以,在今后的学习中,我也将不停的严格约束自己,不断学习,除了平时跟着老师学习,自己也会在线上报一些课程以此来升华自己,由于学习计算机本来就并非一朝一夕,所以自己每天也会话一定的时间来学习,编程,敲代码。然后呢,我希望自己以后能越来越好,越来越强,首先就是在大学做成一些较大成就吧,随后便是不断地升华自己,进入大厂,拿着自己理想的工资(嘻嘻,最终的目的)。若要谈自己的理想公司,由于自己从小就玩腾讯的游戏,自己受他的影响也是比较大的,所以我最想进的公司自然也是腾讯了。最后,祝自己早日实现自己的梦想吧!
2023-07-20 14:30:22
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅