自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bkspiderx的博客

关注C/C++领域

  • 博客(380)
  • 收藏
  • 关注

原创 C++参数传递:值传递、指针传递与引用传递的深度解析

本文深入解析了C++中三种参数传递方式的核心特性与应用场景。值传递通过副本操作确保原始数据安全,但存在复制开销;指针传递通过地址间接修改数据,需注意空指针风险;引用传递作为C++特有方式,兼具指针的效率与更简洁安全的语法。文章通过代码示例对比了三者在内存操作、语法复杂度及安全性上的差异,并给出实用建议:小数据用值传递,修改数据优先引用传递,兼容C代码时用指针传递,大型对象推荐const引用传递。掌握这些传递方式的本质区别,能够帮助开发者编写更高效、安全的C++代码。

2026-05-11 09:20:59 259

原创 编译选项 -Werror=return-type 详解:从根源杜绝因「函数缺少返回值」导致崩溃的真正原因

-Werror=return-type是GCC/Clang的关键编译选项,它将非void函数缺少返回值的警告升级为编译错误,从根本上杜绝因随机返回值导致的内存异常和崩溃问题。该选项强制检查所有非void函数的每条代码路径是否都有合法return语句,若存在缺失则直接报错终止编译。典型错误包括函数末尾漏写return或异常分支缺少返回值。未定义返回值会返回栈上随机数据,可能引发野指针、数组越界等严重问题。通过将此选项加入Makefile或直接编译命令,可将潜在运行时崩溃提前到编译阶段拦截,是保障C/C++项目

2026-05-11 09:19:38 235

原创 华为OD机试真题精讲:考古学家(Python/Java/C++多语言实现)

摘要 本文详细讲解了华为OD机试中的"考古学家"题目,要求找到字符串中包含不超过k种字符的最长子串。题目给出了字符串长度和k值的约束条件,并提供了多个示例说明。文章重点分析了滑动窗口算法的应用,通过双指针和字符计数数组高效解决问题,保证时间复杂度O(n)和空间复杂度O(1)。同时提供了Python、Java和C++三种语言的实现代码,分别针对开发效率、类型安全和执行速度进行了优化。每种实现都包含详细解析,帮助理解滑动窗口的核心逻辑和边界处理技巧。

2026-05-11 09:18:24 10

原创 华为OD机试真题精讲:文件缓存系统(Python/Java/C++多语言实现)

本文介绍了华为OD机试中文件缓存系统问题的解题方法。题目要求设计一个基于LRU(最近最少使用)策略的缓存系统,计算给定文件访问序列下的缓存未命中次数。核心考点包括LRU实现、数据结构应用和边界条件处理。 解题思路采用有序结构维护缓存状态,命中时更新访问顺序,未命中时根据容量淘汰最久未使用的文件。提供了Python和Java两种实现:Python使用列表模拟缓存,通过remove和append操作维护顺序;Java采用LinkedList,利用其双向链表特性高效实现LRU逻辑。两种方案均满足题目要求的O(n*

2026-05-11 09:17:54 16

原创 从崩溃堆栈读懂 C++ 内存错误:一次典型问题定位全解析

本文解析了一个典型的C++内存错误崩溃堆栈。关键发现包括:1) [clone .cold]标记指向错误处理分支;2) 异常地址表明栈已被破坏;3) 根本原因是内存越界写入导致栈损坏,而非单纯的free崩溃。调试建议聚焦内存操作函数,检查数组边界和使用内存检测工具。文章展示了如何通过堆栈信息快速定位C++内存问题的根源。

2026-05-07 09:21:17 247

原创 std::meta 核心用法

C++26标准引入的std::meta为编译期静态反射提供了核心支持,主要特性包括:1)通过类型查询和成员遍历实现结构体/类反射;2)支持枚举类型识别和函数参数反射;3)与type_of/name_of联动实现类型判断和名称获取。相比传统RTTI,std::meta在编译期完成所有操作,无运行时开销,适用于JSON序列化、配置文件解析、跨模块反射等场景。该特性需要C++20及以上标准支持,使用时需注意私有成员访问权限和跨DLL兼容性问题。

2026-05-07 09:13:57 337

原创 华为OD机试真题精讲:文本统计分析(Python/Java/C++多语言实现)

文章摘要: 本文详细讲解了华为OD机试真题中的文本统计分析问题,要求对输入文本进行多维度字符统计。题目需统计字母、数字、空格、标点和其他字符的数量,并返回指定格式的结果列表。文章提供了Python、Java和C++三种语言的实现方案,均采用线性遍历和字符分类计数的方法,保证O(n)时间复杂度和O(1)空间复杂度。核心考点包括字符分类与ASCII码判断、边界条件处理以及多语言字符处理特性。每种实现都附有详细解析,涵盖输入处理、字符分类逻辑和结果输出等关键步骤,适用于不同编程背景的开发者参考。

2026-05-07 09:13:10 18

原创 华为OD机试真题精讲:图像物体的边界(Python/Java/C++多语言实现)

本文介绍了华为OD机试中关于图像物体边界识别的算法题目。题目要求识别二值化图像中物体的边界像素,边界像素定义为值为1且其8邻域中存在背景0或处于图像边界外的像素。文章详细讲解了题目要求、输入输出规则、约束条件和示例说明,并提供了Python和Java两种实现方案。核心解题思路包括:1)遍历每个像素并检查其8邻域;2)判断邻域是否包含背景或越界;3)标记边界像素。两种实现都采用了方向数组来处理8邻域检查,时间复杂度为O(m*n),满足题目要求。Python实现简洁高效,Java实现类型安全稳定,均能正确处理各

2026-05-07 09:12:37 27

原创 除了虚表(vtable),C++ 实现运行时类型识别(RTTI)的其他方式

摘要 C++中除虚表(vtable)外,实现运行时类型识别(RTTI)的多种替代方案包括:1)手动类型枚举+虚函数(最常用),2)CRTP模板静态多态,3)typeid关键字(不强制依赖虚表),4)自定义类型哈希/唯一ID,5)工厂模式+注册机制(大型框架常用),6)手写函数指针表替代虚表,7)Qt的元对象系统。这些方案适用于资源受限、性能敏感或需要跨模块的场景,相比标准RTTI能减小体积、提升性能或增强灵活性。选择取决于项目需求,其中手动类型枚举和工厂注册是最主流方案。

2026-04-27 09:23:22 248

原创 深入理解 dynamic_cast:为何必须依赖虚表(vtable)实现类型识别

本文深入解析了C++中dynamic_cast的工作原理与虚表(vtable)的密切关系。dynamic_cast实现安全向下转型的关键在于运行时类型识别(RTTI),而这必须依赖虚表机制。当类不含虚函数时,对象内存中没有任何类型标识,dynamic_cast无法工作;而一旦包含虚函数,编译器会自动生成虚表和虚指针(vptr),虚表中存储了类型信息。dynamic_cast通过访问对象的vptr找到虚表,获取RTTI信息进行类型验证,确保转型安全。相比之下,static_cast是编译期转换,不依赖运行时类

2026-04-27 09:22:37 463

原创 华为OD机试真题精讲:高效货运(Python/Java/C++多语言实现)

华为OD机试真题精讲:高效货运问题解析 本文详细讲解了华为OD机试中的高效货运问题(2025B卷100分题),该问题本质是01背包问题的实际应用。题目要求在不超过货车最大载重的前提下,选择货物组合以最大化总价值。文章提供了Python、Java、C++三种语言的实现方案,均采用动态规划的一维数组优化方法,时间复杂度为O(n*max_weight)。关键点包括:问题转化为01背包模型、逆序遍历避免重复选择、边界条件处理等。示例代码可直接用于ACM模式提交,适合备考华为OD的考生学习参考。

2026-04-27 09:21:55 35

原创 华为OD机试真题精讲:贪吃的猴子(Python/Java/C++多语言实现)

这篇文章介绍了华为OD机试真题"贪吃的猴子"的解题思路和多语言实现。题目要求计算猴子在桃子保质期限制下能吃到的最多桃子数量,核心是贪心算法应用。解题关键在于: 过滤掉保质期为0的桃子堆; 按保质期和数量降序排序桃子堆; 使用贪心策略每天选择当前可食用的最大数量桃子堆; 通过优先队列(大顶堆)高效获取最大值。 文章提供了Python、Java和C++三种实现方案: Python实现简洁高效,利用负值排序技巧; Java实现类型安全,使用Comparable接口和优先队列; C++实现执行速

2026-04-27 09:18:47 36

原创 const_cast 详细使用场景、用法与注意事项

本文详细介绍了C++中const_cast运算符的使用场景、语法和注意事项。const_cast专门用于修改类型的const/volatile限定符,是C++中唯一合法去除const限定的方式。文章总结了安全使用场景(如调用非const接口但逻辑不修改数据、避免const成员函数代码重复等),以及必须避免的危险场景(修改真正的const变量或字符串字面量)。关键原则是:const_cast只应用于"去掉别人加的const",而非修改本来就是const的对象。正确使用可提升代码灵活性,滥用

2026-04-20 11:21:57 259

原创 C++ const 转换与字符串字面量:规则 + GCC 行为 + 代码对比全解析

C++中const转换的核心规则是:允许non-const到const的隐式转换,但禁止const到non-const的隐式转换。GCC编译器对普通类型严格遵守这一标准,会直接报错。但在处理字符串字面量赋值给char*时,GCC出于历史兼容性考虑仅发出警告而非报错。对于std::string等其他类型,GCC仍会严格报错。要强制严格标准,可使用-pedantic-errors编译选项。

2026-04-20 11:21:27 173

原创 华为OD机试真题精讲:矩阵匹配(Python/Java/C++多语言实现)

本文介绍了华为OD机试中的矩阵匹配问题,要求在主矩阵中查找与模式矩阵完全相同的子矩阵,并返回所有匹配位置的左上角坐标。题目分析包括输入输出格式、约束条件和示例说明。核心考点涉及二维数组遍历、子矩阵提取和模式匹配算法。解题思路采用暴力匹配方法,通过遍历主矩阵所有可能的起点,逐元素比较子矩阵与模式矩阵。文章提供了Python、Java和C++的多语言实现代码,其中Python代码简洁高效,Java代码类型安全,均包含详细的解析说明。该算法时间复杂度为O(MNK*L),在给定约束下可高效运行。

2026-04-20 11:20:57 94

原创 华为OD机试真题精讲:反射计数(Python/Java/C++多语言实现)

本文介绍了华为OD机试中关于光线反射计数问题的解题思路与多语言实现。题目要求计算光线在矩形镜面中的反射次数,通过数学建模将反射问题转化为矩形扩展问题,利用最大公约数(GCD)和最小公倍数(LCM)进行高效计算。关键点包括:1)将反射转化为直线传播的扩展矩形法;2)通过GCD/LCM计算光线到达顶点的最小扩展次数;3)奇偶性分析判断反射方向。提供了Python、Java和C++三种实现方案,均采用O(1)时间复杂度算法,避免了模拟反射的低效过程。Python实现简洁高效,Java注重类型安全,C++则追求执行

2026-04-20 11:20:23 63

原创 一文吃透C++并发核心:unique_lock、condition_variable与虚假唤醒

本文系统介绍了C++并发编程中的三个核心工具:std::unique_lock、std::condition_variable和虚假唤醒机制。std::unique_lock作为灵活的锁管理器,支持自动解锁和手动控制,是条件变量的专用搭配;std::condition_variable实现线程间高效同步,通过等待-通知机制避免资源浪费;虚假唤醒是多线程中的常见现象,必须通过循环条件校验来防范。掌握这三个关键点,能够帮助开发者编写安全高效的并发代码,解决线程同步与通信问题。文章详细讲解了它们的工作原理、使用方

2026-04-13 09:28:27 276

原创 安全扫描:彻底隐藏 Tomcat 版本号 + 服务器名(100% 过扫描)

Tomcat安全加固方案:彻底隐藏版本信息 通过修改server.xml(添加server="Unknown"和xpoweredBy="false"属性)、配置ErrorReportValve隐藏错误信息、自定义web.xml错误页面,并关键性修改catalina.jar中的ServerInfo.properties文件(清空或替换版本信息),可完全隐藏Tomcat版本标识。最终效果包括:移除HTTP响应头中的服务器信息、屏蔽错误页面的版本泄露、使扫描工具无法识别中间

2026-04-13 09:26:53 505

原创 华为OD机试真题精讲:智能驾驶(Python/Java/C++多语言实现)

本文摘要:华为OD机试智能驾驶题目要求计算车辆从起点到终点的最优行驶路径,考虑道路状态(可通行、障碍物、减速带)和初始能量限制。采用Dijkstra算法结合优先级队列实现,通过动态计算移动代价(普通道路1点、减速带2点)并优化路径搜索。提供Python、Java、C++多语言解决方案,核心是维护每个位置的最小能量消耗,确保时间复杂度O(MNlog(M*N))。输入包含网格和初始能量,输出最小消耗值或-1(无可行路径)。

2026-04-13 09:25:39 39

原创 华为OD机试真题精讲:学生重新排队(Python/Java/C++多语言实现)

题目摘要:本题要求学生排队系统的实现,需根据优先级、身高和学号对学生进行排序。规则为:优先级高的先排,同优先级则身高高的先排,身高相同则学号小的先排。输入为学生列表(学号、身高、优先级),输出为排序后的学号列表。要求算法时间复杂度不超过O(n log n),并处理空列表情况。提供了Python、Java和C++三种语言的实现方案,均采用自定义排序规则,通过多维度比较实现题目要求。关键点在于正确实现排序规则的优先级逻辑,并确保算法效率符合要求。

2026-04-13 09:25:03 33

原创 C++ 标准线程库(std::thread 家族)

C++线程库提供了全面的多线程支持,核心功能包括线程创建与管理(std::thread/std::jthread)、线程同步(mutex/condition_variable)和线程通信(atomic/future)。C++20新增了jthread、stop_token等更安全的线程控制机制,以及信号量、屏障等同步工具。关键点包括:线程构造方式(函数/lambda/成员函数)、RAII锁管理(lock_guard/unique_lock)、条件变量等待机制、原子操作和无锁编程,以及线程本地存储。特别要注意s

2026-04-07 09:10:51 343

原创 Protobuf 开发避坑:protoc.exe 版本必须与库版本严格对应

摘要: Protobuf开发中,protoc.exe版本必须与项目依赖的Protobuf运行库版本严格一致,否则会导致编译/运行时错误、序列化失败或数据解析异常。核心规则: protoc与库的主/次/修订版本需完全相同(如库3.7.1必须配protoc 3.7.1); 版本不匹配会触发API不兼容、元数据校验失败或动态库符号错误; 验证方法:通过protoc --version和检查库文件版本号确保一致。 结论: 版本强绑定是Protobuf稳定运行的先决条件。

2026-04-07 09:10:04 528

原创 华为OD机试真题精讲:伐木工(Python/Java/C++多语言实现)

摘要 本文详细解析了华为OD机试真题"伐木工"问题,这是一个典型的01背包问题变种。题目要求在规定总伐木时间内选择砍伐树木以获得最大收益,每棵树只能砍伐一次。文章提供了三种语言实现方案(Python/Java/C++),均采用动态规划方法,通过一维数组优化空间复杂度至O(total_time)。核心解题思路包括:1)将问题映射为01背包模型;2)使用逆序遍历避免重复选择;3)处理边界条件。代码实现展示了输入处理、DP数组初始化和状态转移过程,时间复杂度为O(n*total_time),完

2026-04-07 09:08:38 36

原创 华为OD机试真题精讲:路口最短时间问题(Python/Java/C++多语言实现)

本文介绍了华为OD机试中路口最短时间问题的解题方法。题目要求计算城市路口网络中从起点到终点的最短通行时间,道路双向通行。核心考点包括Dijkstra算法、邻接表构建和优先队列使用。解题思路是将问题转化为无向带权图的最短路径问题,使用Dijkstra算法实现,时间复杂度为O(m + n log n)。文章提供了Python、Java和C++三种语言的实现代码,均采用邻接表存储图结构,使用优先队列优化查找过程,并处理了起点终点相同、无连通路径等边界条件。代码解析详细说明了输入处理、数据结构选择和算法流程,适合备

2026-04-07 09:08:06 36

原创 深入理解C++中的thread_local:线程局部变量的应用与实践

本文深入解析C++11中的thread_local关键字,详细介绍了线程局部变量的核心概念与关键特性。thread_local为每个线程创建独立变量副本,实现线程间的完全数据隔离,无需同步机制即可避免数据竞争。文章通过代码示例展示其使用方法,分析典型应用场景(如线程私有数据存储、替代全局变量等),并指出使用时的注意事项(初始化开销、调试复杂度等)。最后比较了thread_local与非标准扩展__thread的区别,强调应优先使用标准特性。合理运用thread_local可显著提升多线程程序的性能与可维护性

2026-03-30 10:31:18 496

原创 JNI版本:核心知识、兼容性与版本选择指南

JNI版本指南:兼容性与选择策略 JNI(Java Native Interface)版本绑定Java SE版本,没有独立版本号。关键要点包括: 版本对应关系:从Java 1.1到Java 17,JNI功能逐步增强,但保持向下兼容性 核心规则:编译时使用的jni.h版本必须≤运行时JDK版本 常见问题:版本不匹配导致UnsatisfiedLinkError或加载失败 最佳实践:优先选择运行环境最低JDK版本对应的JNI版本,编译时明确指定版本号 验证方法:通过nm工具检查符号依赖,运行时验证兼容性 遵循&q

2026-03-30 10:30:16 415

原创 华为OD机试真题精讲:根据IP查找城市(Python/Java/C++多语言实现)

摘要 本文讲解了华为OD机试中的IP地址到城市映射查询问题。题目要求高效查询IP地址对应的城市,输入包括有序无重叠的IP段映射表和待查询IP列表。核心解法是二分查找,时间复杂度优化至O(n + m*logn)。文章详细分析了问题转化思路、二分查找逻辑和边界处理,并提供了Python、Java和C++三种语言的实现代码。Python使用bisect模块简化二分查找,Java通过自定义二分查找确保类型安全,C++利用标准库实现高效查询。所有实现均符合ACM模式输入输出要求,适用于大规模数据处理场景。

2026-03-30 10:29:02 71

原创 华为OD机试真题精讲:会议室占用时间(Python/Java/C++多语言实现)

摘要 本文讲解华为OD机试高频题"会议室占用时间"的解题方法。题目要求合并重叠或相邻的会议时间段后计算总时长,输入为[start_time, end_time]列表,需处理空列表、相邻区间等情况。核心思路是先按开始时间排序,再使用贪心算法合并区间:当前区间开始时间≤上一区间的结束时间则合并。提供Python、Java、C++三种实现,均遵循O(n log n)时间复杂度。Python代码简洁高效,Java注重类型安全,C++强调性能优化。文中修正了示例数据错误,并通过流程图展示算法逻辑,

2026-03-30 10:28:30 44

原创 C/C++技术,以笔为犁筑梦

本文回顾了作者在CSDN平台深耕C/C++技术创作的心路历程。从最初为解决开发问题而记录技术笔记,到如今系统化输出C/C++底层原理、工程实践、跨平台开发等内容,创作过程促使作者不断深化技术理解,从"会用"走向"吃透"。通过与读者的互动交流,作者的技术视野得到拓展,并养成了更严谨的开发习惯。未来作者将继续聚焦C/C++核心技术、嵌入式物联网开发等方向,产出兼具深度与实用性的内容,在技术分享中实现自我成长。

2026-03-23 16:34:02 321

原创 Mosquitto 详解:轻量MQTT Broker与客户端库的交叉编译及实战

Mosquitto是一款轻量级MQTT消息代理和客户端库,专为物联网和嵌入式系统设计。它支持MQTT v3.1.1和v5.0协议,具有低内存占用(<10MB)、TLS加密、跨平台等特性。文章详细介绍了Mosquitto的交叉编译流程(以ARM平台为例),包括工具链配置、CMake编译选项设置及常见问题解决。同时提供了Broker基础配置方法和客户端库使用示例,展示如何通过C语言API实现消息发布功能(QoS1)。Mosquitto凭借其轻量高效的特点,特别适合资源受限的嵌入式设备使用。

2026-03-23 12:19:18 603

原创 解决VS Code锁定编辑器组导致跳转定义/声明自动拆分编辑器问题

VS Code锁定编辑器组后,跳转定义/声明会自动拆分新组。核心原因是锁定组保护机制会强制跳转操作导向新组。解决方法:1)直接取消锁定组;2)保留锁定组时,在settings.json中添加"workbench.editor.openPositioning":"activeGroup"配置。还可通过补充配置实现全局禁用跳转拆分。两种方案均可解决跳转自动拆分问题,开发者可根据实际需求选择取消锁定或修改配置。

2026-03-23 12:17:59 535

原创 华为OD机试真题精讲:启动多任务排序(Python/Java/C++多语言实现)

华为OD机试真题:多任务排序问题解析 题目概述 给定任务列表tasks=[task_id, priority, execution_time],要求按优先级升序、执行时长升序、任务ID升序排序后输出任务ID列表。空列表直接返回空。 核心解法 多关键字排序:使用优先级、执行时长、任务ID作为三级排序键 时间复杂度:O(n log n)的排序算法(如快速排序) 边界处理:空输入直接返回空列表 实现要点 Python:利用lambda表达式实现元组排序 Java:通过Comparator接口自定义多级排序规则 C

2026-03-23 12:16:49 42

原创 华为OD机试真题精讲:找数字(Python/Java/C++多语言实现)

摘要:本文详细讲解了华为OD机试高频题目"找数字"的解题思路与多语言实现。题目要求从[start, end]范围内找出包含目标数字target或能被target整除的所有整数,并统计其数量。核心考点包括数字遍历、数位分析和整除判断。文章提供了Python、Java和C++三种语言的完整实现代码,均采用先判断整除再检查数位包含的优化策略,并对target=1的特殊情况做了处理。各语言实现均满足题目要求的O((end-start+1)*d)时间复杂度约束。

2026-03-23 12:15:59 59

原创 Protobuf 3.7.1 Debug 版本编译教程

本文详细介绍了Protobuf 3.7.1 Debug版本的两种编译方法。通过CMake或Autoconf工具,配置调试参数(-g和-O0)生成带完整调试信息的二进制文件。重点讲解了CMake方式(推荐)的编译步骤,包括创建独立编译目录、设置CMAKE_BUILD_TYPE=Debug等关键配置,以及验证调试信息的方法。同时提供了Autoconf方式的备选方案,并强调Debug版本仅适用于开发调试,生产环境应使用Release版本。编译时建议为不同版本配置独立安装路径以避免冲突。

2026-03-18 11:53:50 492

原创 华为OD机试真题精讲:数据单元的变化替换(Python/Java/C++多语言实现)

本文详细讲解了华为OD机试真题"数据单元的变化替换"的解题方法,包含题目描述、核心考点和解题思路分析。题目要求根据不同的替换模式(精准替换或范围替换)对数据单元进行批量处理,并考虑规则优先级。文章提供了Python、Java和C++三种语言的实现代码,重点分析了输入处理、规则顺序执行和值实时更新等关键技术点。该问题考察数据处理逻辑和条件判断能力,时间复杂度要求为O(n*m),适用于常见的数据转换场景。

2026-03-18 11:53:02 44

原创 华为OD机试真题精讲:二叉树的广度优先遍历(Python/Java/C++多语言实现)

本文讲解了华为OD机试中二叉树广度优先遍历(BFS)的解题方法。题目要求将序列化数组表示的二叉树按层级输出节点值,每层作为子列表。核心思路是使用队列实现BFS,记录每层节点数,确保层级遍历完整。文章提供了Python、Java、C++三种实现,其中Python使用双端队列高效处理,Java通过类型安全实现稳定性能,均满足O(n)时间复杂度和空间复杂度要求。关键点包括:队列初始化、层级控制、空节点处理和边界条件判断。代码示例可直接提交,适合考生快速掌握高频考点。

2026-03-18 11:52:23 46

原创 MQTT 开源库:Eclipse Paho C 详解,特性、交叉编译与实战示例

本文详细介绍了 Eclipse Paho C MQTT 客户端库的核心特性、交叉编译方法及实战应用。Paho C 作为轻量级物联网通信库,完整支持 MQTT v3.1.1 和 v5.0 协议,提供同步/异步 API,具备 TLS 加密能力,最小内存占用仅数 KB。文章以 ARM 嵌入式平台为例,展示了如何通过 CMake 配置交叉编译工具链,并提供了禁用 TLS 等优化选项以减小体积。最后通过同步发布消息的代码示例,演示了 QoS 1 消息发布流程,包括客户端创建、连接参数配置、消息发布及确认等待等关键步骤

2026-03-16 09:17:55 1132

原创 C++中的后置返回类型:现代函数声明的艺术

C++后置返回类型:现代函数声明的关键特性 摘要:C++11引入的后置返回类型(Trailing Return Type)通过auto function(parameters) -> return_type语法,将返回类型置于参数列表后,显著提升了代码表达力。该特性主要解决三类问题:1)模板函数中返回类型依赖参数的情况;2)复杂返回类型的可读性问题;3)类模板成员函数的类型推导。与decltype结合可实现精确类型推导,在C++14/20中还能与decltype(auto)、Concepts和协程等新

2026-03-16 09:17:13 519

原创 华为OD机试真题精讲:报数游戏(Python/Java/C++多语言实现)

华为OD报数游戏解题摘要 本文详细讲解了华为OD机试中的报数游戏题目,属于约瑟夫环变种问题。题目要求n个小朋友围成一圈报数,当报数为m的倍数或包含m时淘汰,最终找出获胜者初始编号。 核心解题思路: 问题转化为约瑟夫环变种,关键在于淘汰条件判断 提供两种解法:模拟法(推荐新手)和数学公式法(高效) 重点讲解了模拟法的实现步骤和优化方法 多语言实现要点: Python使用列表或双端队列(deque)模拟淘汰过程 Java采用队列(Queue)实现环形报数逻辑 C++同样使用队列(queue)保证执行效率 优化策

2026-03-16 09:15:23 42

原创 华为OD机试真题精讲:敏感字段加密(Python/Java/C++多语言实现)

敏感字段加密算法实现 算法概述 该算法用于对字符串中的敏感字段进行加密处理,敏感字段以"#S#"开头、"#E#"结尾。加密方式是将敏感字段内容反转,同时保留前缀和后缀不变。 实现要点 字符串遍历:使用双指针技术定位敏感字段的起始和结束位置 内容反转:提取敏感内容后执行反转操作 高效拼接:使用字符串构建器避免频繁内存分配 多语言实现 Python实现特点 利用字符串切片[::-1]快速反转 使用列表存储结果片段,最后join拼接 时间复杂度O(n),适合处理长字符串 J

2026-03-16 09:14:48 56

tftp协议工具,用于tftp上传和下载

tftp协议工具

2025-11-10

一键转换 7.0 工具是一款用于 Windows 系统版本转换的工具,其正式名称为 “OSSQ Win10/Win11 系统版本一键转换 V7.0”

一键转换 7.0 工具是一款用于 Windows 系统版本转换的工具,其正式名称为 “OSSQ Win10/Win11 系统版本一键转换 V7.0”。以下是关于它的详细介绍: 支持平台:Windows 系统,支持 Windows 10 和 Windows 11 全版本系统的切换。 主要功能:可以在 Windows 10 和 Windows 11 的专业版、企业版、家庭版、教育版、G 企业版等版本之间互相切换,还支持批量切换版本,能够大大节约运维时间。 特点:全过程无须联网,支持静默模式切换。新增了卓越性能模式开启功能,可实现更高效的系统性能优化。同时,在切换前会自动备份原有激活码,支持激活码还原功能。 使用方法:下载并解压软件包后,右击 “一键转换 7.0”,选择 “以管理员身份运行”。在软件界面中选择需要转换的系统版本,通常推荐使用零售版,然后点击 “开始转换”,等待片刻即可转换成功。 注意事项:该工具不支持在预览版系统上运行,且目前不支持最新的 Windows 11 系统。由于这类修改软件容易被杀毒软件查杀,所以在解压软件包前,需务必退出杀毒软件和系统自带的实时保护。

2025-10-13

Visual Assist X 10.9.2210

Visual Assist X 10.9.2210

2025-08-14

minigui-1.3.0

minigui

2025-08-14

CImg.h:验证码库

CImg.h:验证码库

2024-12-26

WebSocketMan-v1.0.9-win32.zip

WebSocketMan:主要在Windows平台上WebSocket测试工具,支持加密和非加密的ws、wss,支持WebSocket客户端和服务器模式

2024-08-26

小鸟拼接控制器系统指令集V1.1

小鸟拼接控制器系统指令集V1.1

2024-08-23

utf8汉字字符和拼音的映射结构

utf8汉字字符和拼音的映射结构

2024-07-10

空空如也

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

TA关注的人

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