- 博客(482)
- 收藏
- 关注
原创 QStyleItemDelegate:自定义列表控件类神器
QStyledItemDelegate是Qt模型/视图架构中实现项自定义的核心类,负责项的绘制和编辑功能。相比旧版QItemDelegate,它深度融合Qt样式系统,支持跨平台风格一致性和样式表。开发者通过重写关键虚函数实现定制:paint()用于自定义外观,createEditor()、setEditorData()和setModelData()用于编辑功能。该委托支持精细控制,可针对整个视图或特定行列进行定制,并保持高性能渲染。作为Qt官方推荐的标准实现,QStyledItemDelegate能完
2026-02-07 19:08:28
495
原创 MinHook:Windows 平台下轻量级、高性能的钩子库
MinHook是一款轻量级Windows内联钩子库,支持x86/x64架构,通过修改目标函数机器码实现函数重定向。核心优势包括:自动处理内存权限、指令跳转和地址计算;提供简洁API(初始化、创建/启用/禁用钩子、卸载);线程安全且低侵入性。使用流程固定:获取目标函数地址→创建钩子→启用钩子→通过跳板函数调用原函数。典型应用场景包括API拦截、调试监控和游戏修改。注意事项包括:必须保持函数签名一致、通过跳板函数调用原函数、避免在DllMain中操作等。附带完整示例演示如何钩取MessageBoxA修改弹窗内容
2026-02-05 21:55:26
947
2
原创 libarchive: 一个几乎可以解压所有压缩文件的C语言库
libarchive 是跨平台开源 C 库(BSD 协议,可免费商用),原生支持解压 / 创建 tar、tar.gz、tar.bz2、tar.xz、zip、7z、rar(仅解压)等几乎所有主流压缩格式,核心优势是纯源码开源、轻量可静态编译、跨平台兼容性极强(Win/Linux/macOS/ 嵌入式),且天然支持tar.gz这类打包 + 压缩的双层格式自动解析,是跨平台 C/C++ 开发中替代 7z SDK 的优质选择,尤其适合需要无闭源依赖、同时支持解压 + 创建压缩包的场景。
2026-02-04 22:38:47
798
原创 浅谈C++插件机制的设计要点以及实现方案
本文探讨了C++插件机制的设计与实现,重点分析了其核心价值、技术挑战和解决方案。插件机制的主要优势包括动态扩展、模块解耦、热更新和故障隔离等,但面临ABI兼容性、跨平台差异、调试难度等技术挑战。文章详细介绍了标准化接口设计、ABI兼容性保障、跨平台加载封装等实现方案,并对比了Qt、Unreal Engine等优秀插件系统架构。针对插件通信、依赖管理等复杂问题,提出了接口分层、服务注册、拓扑排序等解决方案。最后,文章还讨论了进程隔离对稳定性的提升作用,为构建健壮的C++插件系统提供了全面指导。
2026-01-27 23:06:38
693
原创 浅谈CPU中的SIMD
摘要 本文介绍了CPU的SIMD(单指令多数据)技术,包括主流架构的指令集(x86的SSE到AVX-512,ARM的NEON到SVE2)及编译器启用方法。详细说明了如何检测CPU对SIMD的支持:通过命令行查询(Linux/macOS的cpuinfo、Windows的wmic)和C++代码动态检测(使用内置函数或CPUID指令)。文章还介绍了在C++中利用SIMD的三种方式:编译器自动向量化(需优化选项)、直接调用SIMD内置函数以及使用C++标准并行算法。最后提供了CMake检测SIMD支持的方法,帮助开
2026-01-21 22:47:44
869
1
原创 CMake基础: 在release模式下生成调试信息的方法
摘要:本文介绍在CMake项目中为Release模式生成调试信息(pdb)的几种方法:1)在CMakeLists.txt中配置CMAKE_CXX_FLAGS_RELEASE添加/Zi(MSVC)或-g(GCC/Clang)选项;2)使用add_compile_options/add_link_options指令;3)针对特定目标使用target_compile_options;4)直接使用CMake内置的RelWithDebInfo构建类型。推荐使用RelWithDebInfo模式,它默认包含Release
2026-01-21 21:43:00
390
原创 C++标准库并行算法从入门到实战:用 std::execution 榨干你的多核 CPU 和 SIMD
C++17/20并行算法摘要 C++17引入标准库并行算法,通过执行策略参数实现自动并行化,无需修改业务逻辑。主要策略包括: seq - 顺序执行(单线程) par - 多核并行 par_unseq - 多核并行+SIMD向量化(C++17) unseq - 纯SIMD向量化(C++20) 关键要点: 需满足C++17/20标准及编译器要求(GCC9+/Clang10+/MSVC2019+) 必须添加编译参数:-O3 -march=native -lpthread 支持随机访问迭代器的算法(如sort/tr
2026-01-18 22:15:23
919
原创 CMake进阶:模块模式示例FindOpenCL.cmake详解
本文详细解析了CMake模块模式下FindOpenCL.cmake文件的实现原理与编写规范。该脚本实现了跨平台(Windows/Linux/Mac)自动查找OpenCL库,包含头文件定位、库文件查找、版本检测等功能。核心内容包括:1) 使用find_path/find_library进行头文件和库文件搜索;2) 通过check_symbol_exists检测OpenCL版本;3) 兼容32/64位编译(CMAKE_SIZEOF_VOID_P);4) 导出标准变量(OpenCL_LIBRARIES等);5)
2026-01-18 14:50:59
624
原创 CMake基础:foreach详解
CMake 的foreach是遍历列表 / 集合的核心指令,支持传统遍历和现代关键字遍历两种语法,常用于批量处理源文件、库依赖、编译选项等场景。foreach(<循环变量> IN [LISTS <列表名>] [ITEMS <元素>] [RANGE <起始> <结束>])# 循环体LISTS:遍历已定义的 CMake 列表变量ITEMS:遍历直接给出的元素RANGE:遍历数值范围(如RANGE 1 5对应 1-5)
2026-01-14 22:28:14
422
原创 libipc: 一款轻量级、跨平台的 C++ 进程间通信(IPC)库
libipc是一款轻量级跨平台C++进程间通信库,支持Windows和Linux系统。它封装了管道、共享内存、消息队列等底层IPC机制,提供简洁的现代C++ API。主要特点包括:极简API设计、RAII资源管理、零冗余封装、强类型错误处理、纯C++实现。支持C++17/20特性,无锁或轻量级锁机制,提供单写多读和多写多读模式。安装方式支持vcpkg一键安装和源码编译两种方式。库中包含完整的文件传输示例,展示了如何通过共享内存实现跨进程大文件传输。项目适用于桌面应用进程通信、服务器多进程协作、大文件传输等场
2026-01-13 22:17:04
927
原创 QtScrcpy:基于 Qt 的安卓投屏与控制神器
QtScrcpy是一款基于scrcpy核心开发的免费开源安卓投屏控制工具,采用C++和Qt框架重构,提供可视化界面和丰富功能。支持免ROOT、跨平台、低延迟(USB 35-70ms/WiFi 100ms)、高性能(30-60fps)显示,无需手机端安装应用。主要功能包括:键鼠操控、自定义按键映射、多设备群控、屏幕录制/截图、音频同步、文件传输和剪贴板同步。相比原版scrcpy,QtScrcpy增加了GUI操作、多设备管理、一键无线连接等实用功能,稳定性更高。支持Android 5.0+设备,提供Window
2026-01-13 21:39:15
629
原创 CMake进阶:核心命令get_filename_component 完全详解
本文详细介绍了CMake中get_filename_component命令的使用方法,该命令是处理文件路径的核心工具,主要用于解析路径信息。文章重点讲解了5种常用解析模式:DIRECTORY(提取上级目录)、NAME(获取文件名)、NAME_WE(无后缀文件名)、EXT(文件扩展名)和ROOT(根目录)。特别强调了在编写XXXConfig.cmake时,如何通过多级路径向上推导库的根目录及相关子目录,实现库路径的自动识别。文中还提供了路径规范化处理、文件名提取等实用场景示例,并给出了自定义XXXConfig
2026-01-09 23:06:51
1051
1
原创 VS2019编译的C++程序,在win10正常运行,在win7上Debug正常运行,Release运行报错0xC0000005,进不了main函数
本文分析了VS2019编译的C++Release程序在Win7上出现0xC0000005错误的原因。该错误发生在程序加载阶段,导致无法进入main函数。主要原因包括:VS2019默认工具集针对Win10而非Win7;VC++运行时库版本不兼容;启用了Win7不支持的AVX2等高级指令集。最终发现是用于内存泄露检测的动态库在Win7上存在兼容性问题。该问题排查耗时两天,具有典型参考价值。
2026-01-09 22:40:04
338
原创 CMake进阶:vcpkg中OpenSSLConfig.cmake详解
摘要:OpenSSLConfig.cmake是vcpkg安装OpenSSL后生成的CMake配置文件,主要功能包括:1)防止重复导入OpenSSL目标;2)自动推导安装路径;3)根据OPENSSL_USE_STATIC_LIBS选择静态/动态库;4)创建标准导入目标(OpenSSL::Crypto/SSL/applink)。该文件兼容原生FindOpenSSL接口,特别处理了Windows平台的applink.c和系统库依赖。使用时需注意目标冲突检查、静态/动态库选择以及Windows特有的运行时DLL和C
2026-01-03 19:26:59
974
原创 C++ union 的一种妙用法
本文探讨了C++中union的特殊用法,通过分析标准库中的constant_init模板结构体,揭示了union在编译期常量初始化中的巧妙应用。该设计利用union特性避免自动调用成员析构函数,实现编译期构造且手动管理生命周期的需求。文章详细说明了三种初始化union的方法,并指出其适用于平凡析构类型和编译期默认初始化的场景,同时警告了非平凡析构类型可能导致的内存泄漏风险。最后提出了使用静态断言增强安全性和用std::optional替代的建议。
2026-01-03 13:35:47
615
原创 浅谈Qt中的QSql模块整体设计
Qt的QSql模块是Qt框架提供的数据库抽象层,旨在屏蔽不同数据库(如SQLite、MySQL等)的底层API差异,提供统一的操作接口。其核心设计包括三层架构:应用层调用API执行数据库操作,抽象接口层定义统一接口(如QSqlDatabase、QSqlQuery),驱动适配层通过插件机制适配具体数据库。QSql支持SQL执行、参数绑定、事务控制等功能,并与Qt的MVC组件深度整合。模块采用工厂模式、适配器模式等设计模式,确保扩展性和跨平台兼容性。开发者可通过自定义驱动和模型扩展功能,但需注意线程安全和性能优
2026-01-01 22:38:21
1421
原创 CMake进阶:find_package使用总结
本文总结了CMake配置库目录的多种方法:1)设置库根目录(XXX_ROOT)适用于现代库;2)指定配置文件目录(XXX_DIR)实现精准定位;3)添加全局查找路径(CMAKE_PREFIX_PATH)适合多库项目;4)设置模块查找路径(CMAKE_MODULE_PATH)用于老库兼容;5)直接设置头文件和库文件目录(不推荐)。文章详细说明了find_package的查找顺序,列举了查找成功后自动设置的变量(如_FOUND、_INCLUDE_DIRS等),并以Boost为例演示了完整配置流程。最后给出了跨平
2025-12-30 22:06:52
1219
原创 Q-Dir:高效多窗口文件管理神器
Q-Dir是一款高效的Windows多窗口文件管理器,支持1-4个窗口同时显示,每个窗口可独立浏览不同目录并支持多标签页(最多64个文件夹)。核心功能包括窗口间拖拽文件、批量操作、文件过滤、颜色标记分类等,兼容本地/网络/FTP等多种存储介质。提供便携版和安装版,支持Win7-Win11系统。相比系统资源管理器,Q-Dir在多窗口管理、标签页浏览和批量操作方面优势明显,特别适合需要频繁处理多目录文件的用户,能显著提升工作效率。
2025-12-30 21:30:09
1377
原创 QProcess在Windows下不能正常启动exe的原因分析
Qt框架中的QProcess类提供了跨平台进程管理功能,支持三种启动方式:start()用于交互式进程(可监控状态和I/O通信),startDetached()用于独立后台进程,execute()用于阻塞式简单命令执行。使用QProcess时需注意:1)正确设置工作目录;2)拆分程序路径和参数;3)处理跨平台差异(如Windows的GBK编码问题)。常见问题包括启动失败(工作目录未设置)、输出乱码(编码转换)和进程卡死(未及时读取输出)。对于需要完全独立运行的子进程,推荐使用startDetached()或
2025-12-27 23:09:05
960
2
原创 Jieba库: 一个中文分词领域的经典库
Jieba-cpp是高效的中文分词C++库,支持精确模式、全模式和搜索引擎模式三种分词方式。它采用前缀词典和双向最大匹配算法保证分词精度,结合HMM模型识别未登录词。支持TF-IDF关键词提取和词性标注功能,可与Xapian等检索系统无缝集成。工程实践中建议使用单例模式初始化分词器,通过批量处理、多线程优化性能。该库支持自定义词典,适合企业级中文搜索服务开发,是C++项目中处理中文分词的优选方案。
2025-12-26 22:59:57
1051
1
原创 librf: 一款基于 C++11/14/17 标准实现的轻量级无栈协程库
librf是一个基于C++11/14/17的轻量级无栈协程库,专为高效异步编程设计。它采用无栈协程架构,通过co_await实现异步等待,上下文存储在堆上task<>对象中,无需独立栈空间。该库支持跨平台、零外部依赖,提供task<>、generator<>等异步原语,单进程可支持百万级协程并发。安装方式灵活,可直接嵌入源码或通过CMake编译。示例展示了协程定时器和异步文件读取功能,适用于高并发网络服务、仿真系统等场景。相比Boost.Coroutine等库,librf
2025-12-26 22:59:04
915
原创 Xapian: 一款C++全文检索解决方案
Xapian是一款高性能开源全文检索库,支持中文分词、模糊查询、排序加权等功能,适用于嵌入式系统和轻量级检索场景。其核心优势包括毫秒级检索响应、批量索引优化、低资源占用(内存模式仅占用1.2倍索引数据)以及多平台支持(Windows/Linux/macOS/ARM)。提供三种安装方式:vcpkg一键安装(推荐)、源码编译和CMake集成。功能演示涵盖索引创建(支持批量提交和压缩)、关键词检索(支持布尔逻辑和模糊查询)以及索引更新删除。相比同类工具,Xapian在轻量级和嵌入式场景表现优异,但缺乏原生分布式支
2025-12-23 21:41:15
1268
原创 C++之std::stringstream详解
std::stringstream 是 C++ 处理字符串的 “瑞士军刀”,核心价值:灵活的类型转换(数字↔字符串);高效的字符串拼接;便捷的字符串分割;所有操作在内存中完成,无 IO 开销,性能优异。实际开发中,优先用 istringstream 处理 “读 / 解析”、ostringstream 处理 “写 / 拼接”,stringstream 仅在需要双向操作时使用(略占内存)。
2025-12-23 21:15:13
1237
原创 标准C++操作文件方法总结
本文介绍了C++文件操作的核心知识。主要包含:1)使用<fstream>头文件中的ifstream、ofstream和fstream类进行文件读写;2)文件打开模式(如ios::in、ios::out等)及其组合使用;3)文本文件和二进制文件的具体操作方法,包括读写文本(<<、>>、getline())和二进制数据(write()、read());4)文件指针定位(seekg()、seekp())和错误处理(is_open()、eof()等);5)注意事项如文本/二进制模
2025-12-21 10:49:07
810
原创 ZeroMQ: 一款高性能、异步、轻量级的消息传输库
ZeroMQ是一款高性能异步消息传输库,提供REQ/REP、PUB/SUB、PUSH/PULL等多种通信模式,支持跨网络/进程/线程通信。相比传统消息队列,它无中心节点、延迟低至微秒级,但缺乏持久化功能。安装可通过包管理器或源码编译,核心组件包括Context和Socket。典型应用场景包括RPC调用、实时推送和任务分发。使用时需注意套接字类型匹配和线程安全问题,适合对实时性要求高但不需要强持久化的分布式系统。
2025-12-20 22:15:53
1685
原创 QTableWidget和QTableView插入数据比较
QT表格控件性能优化指南 摘要:QT中QTableWidget和QTableView是两种常用表格控件。QTableWidget开箱即用但性能有限,适用于小数据量场景,可通过禁用UI更新、预分配空间等优化手段提升插入效率。QTableView采用模型视图架构,搭配自定义模型可实现百万级数据的高效展示,通过懒加载仅渲染可见区域,内存占用低且扩展性强。核心差异在于:QTableWidget适合简单静态表格(千行级),而QTableView更适合大数据量、多数据源等复杂场景。开发者应根据数据规模、性能需求和扩展性
2025-12-19 22:26:51
1025
原创 Qt实现多语言原理和实践详解
Qt多语言实现核心是通过QTranslator加载.qm翻译文件,结合tr()标记实现字符串替换。关键步骤包括:1)用lupdate提取代码中的tr()字符串生成.ts文件;2)使用QtLinguist编辑翻译;3)用lrelease编译为.qm文件。程序运行时通过load()加载翻译文件,installTranslator()安装翻译器。支持运行时语言切换,需卸载旧翻译器并刷新界面。注意事项包括:正确使用tr()宏、处理复数形式、避免动态拼接字符串等。还可将.qm嵌入资源文件或加载Qt内置控件翻译。完整流
2025-12-17 22:48:48
1447
1
原创 Typora:优雅的 Markdown 编辑器
Typora是一款所见即所得的Markdown编辑器,提供无缝写作体验。它支持CommonMark和GitHub语法,包含表格、数学公式、代码高亮等高级功能,具有简洁界面和智能快捷键。支持导出多种格式,适用于个人笔记、技术写作、学术论文等场景。安装简单,基础操作包括标题、列表、表格等快捷键,并提供专注模式、大纲视图等实用功能。Typora以极简设计和高效体验成为Markdown编辑标杆,适合需要专注创作的各类用户。
2025-12-17 21:50:12
623
原创 同一线程有两个boost::asio::io_context可以吗?
Boost.Asio的io_context是异步操作的核心调度引擎,采用Reactor模式封装了操作系统的多路复用机制(epoll/kqueue/IOCP/select)。它包含服务注册表、事件多路复用器、完成队列等核心组件,负责监听和分发异步事件。io_context提供run()、poll()等接口控制事件循环,支持多线程并发处理。为保障线程安全,推荐使用strand序列化回调。work_guard可防止事件循环提前退出。实际应用中应避免单线程使用多个io_context,注意处理回调异常和fork后的
2025-12-12 22:22:28
897
原创 async_simple:一个轻量级C++异步协程框架
async_simple是一个轻量级C++异步编程库,兼容C++11+标准,提供无栈/有栈协程、Future/Promise等多种异步模型。核心特性包括多协程支持、轻量级Task模型、灵活执行器、异步同步原语等,具有高性能、低内存开销特点。适用于IO密集型应用、高并发系统等场景。相比Boost.Asio等库,它在易用性和性能间取得更好平衡,且无第三方依赖。安装支持源码编译和包管理器,提供CMake集成方案。典型应用包括网络服务器、数据库客户端等需要高并发但线程开销敏感的场景。
2025-12-07 14:04:54
1203
4
原创 VS2022编译C++报错:fatal error C1060: compiler is out of heap space
本文针对C++编译时出现的"compile is out of heap space"错误,分析了原因并提供了多种解决方案。主要原因包括编译器处理大型代码文件、复杂模板或重型库时内存不足,特别是在Windows+Visual Studio环境下。解决方法包括:1)调整VS编译器堆空间参数/ZmXXX;2)在CMake中全局配置堆空间比例;3)工程优化如拆分大文件、关闭冗余选项、切换64位编译;4)确保系统盘有足够空间。文章还提供了完整的跨平台CMake配置示例,支持Qt/Boost依赖,
2025-12-07 10:37:39
765
原创 sigslot: 一个轻量级实现观察者模式的C++开源库
摘要: sigslot是一个轻量级C++信号槽库,实现观察者模式,用于解耦事件发送者与接收者。其特点包括:纯头文件实现、类型安全(编译期检查)、支持多线程(可选锁机制)、无虚函数开销。核心机制基于回调列表,支持全局函数、成员函数及lambda作为槽。安装仅需包含头文件,使用示例涵盖基础连接、多参数信号及线程安全配置。需注意对象浅拷贝问题(需手动实现深拷贝),与Qt/Boost相比更轻量化但功能精简,适用于非Qt项目。默认同步调用机制可能导致阻塞,需谨慎设计槽函数。
2025-12-05 22:20:07
1215
原创 fmilib: 一个FMI 标准的 C 语言实现库
FMI(功能模型接口)是一种跨平台模型交换标准,其核心产物FMU文件包含模型二进制和XML描述。本文详细介绍了FMU文件结构、fmilib库的功能特性及使用方法,包括:1)FMU标准目录结构解析;2)fmilib库的安装与集成方法;3)提供完整的C语言示例代码,展示从加载FMU到执行仿真的全流程;4)给出汽车发动机冷却系统仿真实战案例,包含模块化代码、配置管理和结果输出。该文为开发者使用fmilib实现FMI标准集成提供了实用指南。
2025-12-04 21:39:02
1420
1
原创 嵌入式软件架构设计浅谈
本文系统阐述了嵌入式软件架构设计的核心原则与典型模式。针对不同硬件资源(8位/32位MCU)和业务复杂度,重点分析了五种主流架构:前后台架构(适合8位MCU简单系统)、时间片轮询架构(裸机多任务过渡方案)、RTOS多任务架构(32位MCU标准方案)、分层架构(中大型系统解耦方案)和事件驱动架构(交互密集型系统)。文章强调嵌入式架构设计必须遵循实时性优先、硬件适配等原则,在资源受限条件下平衡性能与可维护性。通过具体代码示例展示了各架构的实现要点,为开发者提供了从裸机到RTOS的完整架构演进路径。最终指出嵌入式
2025-12-02 22:49:47
1196
2
原创 Asio2: 一个基于 Boost.Asio 封装的高性能网络编程库
Asio2是基于Boost.Asio封装的第三方C++网络库,提供简化API并增强功能。支持TCP/UDP/HTTP/SSL等协议,内置断线重连、心跳检测等机制,兼容C++11及以上标准。通过VCPKG或CMake快速集成,提供模块化HTTP服务器实现方案,包含路由管理、静态文件处理等功能。相比原生Boost.Asio,Asio2具有更简洁的接口、更丰富的内置功能,同时保持跨平台特性(Windows/Linux/macOS),显著提升网络应用开发效率。典型应用包括高性能服务器开发、IoT通信等场景。
2025-11-29 22:15:46
1242
3
原创 Mimalloc:一款高性能、低开销和线程安全的C++内存分配器
mimalloc是微软开发的高性能内存分配器,具有低碎片、快速分配和线程安全等特点。采用隔离内存池和页级缓存设计,性能比glibc的ptmalloc2提升30%以上,碎片率降低20%-50%。支持Windows/Linux/macOS平台,可无缝替换标准malloc/new,并提供内存统计、泄漏检测等高级功能。集成方式灵活,可通过CMake或源码级集成,特别适合高性能服务器、Qt应用和内存密集型程序。使用时需注意避免混合分配器,并针对不同场景优化编译选项。
2025-11-29 13:57:34
833
原创 QT 中的元对象系统(八):数据类型的识别
Qt元类型系统是框架的核心基础设施,通过在运行时提供类型信息实现C++的动态特性。它支持信号槽机制的类型安全通信、QVariant的万能容器功能、动态属性系统和对象序列化。自定义类型需通过Q_DECLARE_METATYPE宏声明和qRegisterMetaType()函数注册,QObject派生类则通过Q_OBJECT宏自动注册。系统通过模板特化和原子操作确保线程安全,并严格检查类型兼容性。QVariant的canConvert()方法利用类型ID和注册的转换器实现灵活的类型转换。该系统弥补了C++在运行
2025-11-23 18:57:59
1000
3
原创 fmt: 一个高效易用的字符串格式化C++库
fmt是一个现代C++格式化库,提供类型安全、高效易用的字符串格式化功能。其特点包括:编译期类型检查、类似Python f-string的简洁语法(使用{}占位符)、优于iostream的性能、丰富的格式控制(对齐/进制/精度等)以及支持自定义类型格式化。可通过包管理器或源码安装,核心函数为fmt::format和fmt::print。作为C++20 std::format的前身,fmt支持更早的C++标准并广泛用于日志库spdlog中,是替代传统printf/iostream的理想选择。
2025-11-23 11:36:08
731
1
原创 libdatrie: 一个高效的 基于双数组字典树(Double-Array Trie)的C语言函数库
摘要: libdatrie是一个高效的C语言库,实现了双数组字典树(Double-Array Trie),用于处理大规模字符串集合。它通过base[]和check[]两个数组替代传统Trie树的指针结构,显著降低内存占用(仅为传统Trie的1/5~1/10)并提升查询效率(时间复杂度O(n))。支持UTF-8编码、前缀匹配、通配符查询及数据持久化,适用于字典检索、输入法词库、敏感词过滤等场景。提供简洁API,支持插入、删除、精确/前缀查询及文件存储/加载功能,是高性能字符串处理的优选方案。
2025-11-22 13:27:13
1247
2
原创 fast_float: 一个专注于快速将字符串解析为浮点数的高性能C++库
fast_float是一个高性能C++开源库,专门用于快速解析字符串为浮点数(float/double/long double)。相比标准库函数(如std::strtod),其速度可提升2-10倍,同时保证IEEE 754标准的解析精度。该库采用头文件only设计,支持C++11及以上标准,兼容主流编译器和操作系统。 核心优势包括:1)极致性能,通过算法优化减少分支判断和内存操作;2)准确性保证,实现"四舍六入五成双"的精确舍入;3)易用性,提供简洁的from_chars API;4)支
2025-11-18 22:29:47
1152
1
浮点数与十六进制转换工具
2024-01-22
C++设计模式例程,工厂模式例子
2024-01-15
高质量 C++编程指南,编程的好书籍
2023-12-26
C++模板函数重载规则详解
2023-12-26
sscom 串口调试工具
2023-12-20
NetAssist 网络调试工具
2023-12-20
基于C++CORBA高级编程
2023-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅