- 博客(237)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 【实战】基于GDAL库读取指定经纬度下的地表覆盖数据(数据源:清华大学FROM_GLC10(2017))
本文主要是对From_glc数据集进行地表覆盖类型的一个提取,并且通过随机给出一点,定位出所在的图像文件中,然后根据经纬度与分辨率的比例快速定位出所在的像素坐标,然后提取像元值
2023-03-30 21:34:21
2158
4
原创 C/C++中常用必会的专业单词(持续更新 200+)
在阅读C/C++很多经典书籍时,为了不改变原意有些单词就会保留不会被翻译。这时就需要我们会一些常见的单词术语,减少阅读障碍。
2022-12-04 06:30:00
6757
1
原创 【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(四)
实现一个基于界面化的一个人脸识别。本篇主要是实现第四步。最后一篇咯 1. 首先需要收集数据,我的想法是通过OpenCV调用摄像头进行收集人脸照片。 2. 然后进行预处理,主要是对对数据集分类,训练集、验证集、测试集。选取合适的参数,例如损失函数。图像灰度化、归一化等等操作。 3. 开始训练模型,提前创建好标签键值对。 4. 测试人脸识别效果,通过OpenCV捕获人脸照片然后对图片进行预处理最后传入模型中,然后将识别的结果通过文字的形式打印在屏幕上,以此循环,直到输入q退出。............
2022-08-23 21:12:45
30251
83
原创 深入了解C++中各种不同意义的new和delete
针对new的三种使用方式做了一个使用场景总结,切记操作对应的new 时还需要对应的delete。1、需要将对象创建在堆区,那么就使用也就是new操作符。它会帮你分配内存并调用函数。2、仅需要分配内存,那么就使用,这样就不会调用函数。3、需要在堆区创建对象时自定义内存分配方式,那么就需要重写函数然后使用即可。4、需要在已分配的内存中调用构造函数,那么就使用。...
2022-08-12 20:06:05
1817
2
原创 解析隐式类型转换操作operator double() const,带你了解隐式转换危害有多大
你真的懂C++吗?你了解隐式类型转换操作符?你知道为什么C++引入了explicit关键字吗?最常见的构造函数也有你不了解的坑?
2022-08-05 22:10:11
1518
5
原创 50道数据库SQL练习题(深入理解各关键字的作用)
通过设有学生表、教师表、课程表和成绩表衍生出来近50多个题,每个题都有不同的解法。让你对sql更加有深层的认知
2022-06-15 22:35:33
4637
4
原创 C语言练手题(52个小练习)
目录前言1、求100之内自然数中最大的能被17整除的数。2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。3、计算并输出200-400之间不能被3整除的整数的和 [200, 400)4、从键盘输入10个数,统计非负数的个数,并计算非负数的和5、求125之内自然数中偶数之和。6、输入5个数,求和并输出。要求编写求和的函数。7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出
2021-06-30 10:13:10
56358
79
原创 Claude Code + C++ 项目实战:从零搭建一个完整的 CLI 工具
2026年,AI编程已经从"帮你补全代码"进化到"帮你完成整个项目"。本文用一个真实案例——从零搭建一个C++命令行工具——手把手带你体验Claude Code的完整开发流程。
2026-06-09 09:00:00
214
原创 Agentic Coding 实战:让 AI Agent 自动完成整个功能开发
传统的 AI 编程辅助是「你问我答」模式:你写一行代码,AI 补全下一行。Agentic Coding 则是「你说需求,AI 自己干」模式传统模式: 开发者 → 写代码 → AI 补全 → 开发者 → 继续写Agent模式:开发者 → 描述需求 → AI 自动规划 → AI 自动编码 → AI 自动测试 → 开发者 ReviewAI 不再是被动的补全工具,而是主动的任务执行者。理解需求 → 拆解任务浏览代码库 → 理解上下文自动编写多个文件运行测试 → 修复 bug。
2026-06-08 14:24:01
323
原创 MCP:AI 时代的「USB-C」协议,C++ 开发者为什么必须关注
MCP:AI时代的标准化协议,C++开发者需关注的关键技术 Model Context Protocol (MCP)正成为AI应用连接外部工具和数据的通用标准,解决了N×M适配代码的复杂度问题。该协议采用Client-Server架构,定义五大核心能力:工具调用(Tools)、数据资源(Resources)、提示词模板(Prompts)、反向推理请求(Sampling)和安全边界(Roots)。2025-2026年间,MCP经历了传输层优化、结构化输入机制等重大更新,获得OpenAI、Google等科技巨头
2026-06-08 14:10:59
515
2
原创 C++ 桌面应用中的线程池设计:任务调度、取消机制与 UI 安全更新
围绕桌面客户端常见的后台任务场景,讲解线程池封装、任务取消、进度上报、结果回调和主线程 UI 更新的完整设计。
2026-05-26 09:45:00
390
原创 现代 C++ 工程日志系统设计:从 spdlog 到异步落盘实践
从真实项目出发,讲清日志分级、格式化、滚动切分、异步写盘、线程安全与排障定位,帮助 C++ 项目搭建可维护的日志体系。
2026-05-25 08:30:00
778
原创 用 Qt 做本地 AI 桌面助手:架构设计、任务编排与聊天界面实现
从桌面产品视角讲解本地 AI 助手的模块拆分,包括聊天窗口、任务面板、模型调用层、会话存储与插件化扩展设计。
2026-05-24 10:30:00
433
原创 QML 大列表优化指南:从卡顿定位到流畅渲染
聚焦 ListView、Repeater、Delegate 复用、异步加载与绑定优化,给出一套可落地的 QML 大数据列表性能排查与提速方案。
2026-05-23 08:00:00
346
原创 C++ 桌面应用中的线程池设计:任务调度、取消机制与 UI 安全更新
围绕桌面客户端常见的后台任务场景,讲解线程池封装、任务取消、进度上报、结果回调和主线程 UI 更新的完整设计。
2026-05-22 14:41:39
354
原创 Qt集成AI推理引擎:TensorFlow Lite与ONNX Runtime实战
本文介绍了在Qt应用中集成TensorFlow Lite和ONNX Runtime两大AI推理引擎的实战方案。文章首先分析了本地AI推理在工业质检、医疗影像等场景的必要性,随后展示了Qt+AI的整体架构设计,重点讲解了TensorFlow Lite的集成步骤。通过CMake配置、推理封装类代码示例,详细说明了如何在Qt项目中实现图像分类功能,包括模型加载、图像预处理和推理结果处理等关键环节。该方案支持CPU/GPU加速,适用于需要本地离线AI推理的Qt桌面应用开发。
2026-05-18 10:48:51
465
原创 Qt QML与C++混合编程实战指南
QML 与 C++ 混合编程的本质就是让 C++ 负责"计算",QML 负责"展示"。把 C++ 类变成 QML 可实例化的类型,最灵活注入全局对象,适合单例服务Q_PROPERTY + NOTIFY 信号是属性绑定的基础,漏了信号绑定就废了是暴露 C++ 方法给 QML 的最简方式是列表/表格数据的核心桥梁掌握了这些,你就能在 Qt 项目中自如地在 C++ 和 QML 之间搭建桥梁,让 UI 优雅、让逻辑扎实。📚下一篇预告。
2026-05-18 10:48:15
241
原创 Qt 6.x 新特性概览:从 Qt 5 到 Qt 6 的升级之路
Qt 5 诞生于 2012 年,其核心架构沿用了十余年。痛点Qt 5 的现状Qt 6 的目标C++ 标准基于 C++11/14,大量历史兼容包袱强制 C++17,拥抱现代语言特性构建系统qmake 为主,CMake 支持不完整CMake 成为一等公民,qmake 逐步弃用渲染管线深度绑定 OpenGL,Vulkan/Metal 适配零碎RHI 抽象层统一适配多后端模块化部分模块耦合过紧高度模块化,按需引入多线程QThread + 信号槽模式。
2026-05-18 10:44:31
657
原创 AI Agent 原理与实战:从零理解智能体架构
AI Agent = LLM + 感知 + 记忆 + 工具 + 规划 + 行动用一个类比来理解:如果说 ChatGPT 是一个博学的顾问——你问它问题,它给出建议,但仅此而已;那么 AI Agent 就是一个全能的管家——它不仅能提建议,还能理解你的意图,拆解任务,调用各种工具(查日历、发邮件、写代码),并根据反馈不断调整策略,直到把事情办成。"description": "获取指定城市的当前天气信息","city": {"description": "城市名称,如:北京"},@tool。
2026-05-16 09:00:00
1327
原创 2026 年最值得关注的 5 个 AI 开源项目
模型推理层(vLLM)→ 模型分发层(Ollama)→ 应用构建层(Dify)→ 智能体协作层(CrewAI)→ 开发者工具层(Aider)每一层都在解决"让 AI 更容易被用起来"的不同环节。推理成本持续下降:vLLM 等引擎让单卡服务能力翻倍,MoE 架构让大模型"按需激活"参数本地推理成为常态:Ollama + 量化技术让 MacBook 能跑 70B 模型,隐私敏感场景不再依赖云端低代码/无代码 AI 应用爆发:Dify 这类平台降低了 AI 应用的构建门槛,非技术人员也能参与。
2026-05-15 09:00:00
1592
原创 C++ 调用 OpenAI API:手把手搭建 AI 应用后端
在写代码之前,先搞清楚我们要调的 API 长什么样。环境搭建:两个 header-only 库,零配置非流式调用:发送请求,解析 JSON,获取完整回复流式响应:实时接收 token,逐字输出完整聊天程序:支持多轮对话、消息历史管理错误处理:重试机制、速率限制处理、指数退避性能优化:连接复用、异步请求、消息截断、缓存C++ 调 OpenAI API 没有想象中那么难,核心就是 HTTP + JSON,这在 C++ 生态里都是成熟方案。
2026-05-14 09:00:00
477
原创 把服务器送上天:谷歌×SpaceX太空算力竞赛,AI的尽头是上天?
大约十年后,太空将是建造数据中心的常规方式。“常规方式”——不是前沿实验,不是科研项目,而是常规的、默认的、理所当然的选择。当我们在2036年的某个夜晚仰望星空,那些闪烁的亮点中,可能有相当一部分不是卫星,而是正在运行大语言模型的GPU集群。它们在400公里的高空,用太阳的光芒,训练着比人类更聪明的智能。而这一切的起点,就是今天——2026年5月,谷歌和SpaceX在谈判桌上签署的那份火箭发射协议。历史的车轮已经转动。问题是:你准备好了吗?📊 本文关键数据速查表数据点来源。
2026-05-13 14:30:00
822
原创 C++14 之 std::make_unique
不支持自定义删除器。// ❌ make_unique 不支持自定义删除器// ✅ 只能手动构造这是唯一的"硬伤"。不过在实际项目中,需要自定义删除器的场景相对较少(资源句柄通常有现成的 RAII 封装),所以影响不大。✅异常安全:消除了手动new带来的裸指针泄漏风险✅代码简洁:类型只写一次,无需重复声明✅零运行时开销:编译器内联后与手动new生成的机器码完全相同✅工厂模式的最佳搭档:返回unique_ptr是 C++ 中管理多态对象的标准做法在 C++14 及以上,永远用替代。
2026-05-13 09:00:00
412
原创 C++23 新特性全面解析:从 deducing this 到 std::expected
如果你还在用 C++17 写代码,或者刚开始玩 C++20 的 concepts 和 ranges,那么 C++23 的这些新特性会让你觉得:“嘿,这帮人确实认真在改善日常开发体验。C++23 不是一个大刀阔斧的革命性版本,它更像是一次精心打磨——把开发者日常遇到的痛点一个个解决掉。格式化输出、错误处理、多维数组、模块化、协程……每一个都直击要害。让我们开始吧。特性一句话总结实用指数用一个函数替代 const/non-const 重载⭐⭐⭐⭐⭐类型安全的错误处理,告别异常和错误码的两难⭐⭐⭐⭐⭐。
2026-05-13 09:00:00
843
原创 2026年AI编程工具终极横评:Claude Code vs Cursor vs Codex,开发者该怎么选?
2024年,AI编程还只是一个"锦上添花"的辅助手段——用Copilot补全几行代码,用ChatGPT查个Bug原因,仅此而已。2025年,风向变了。Claude Code横空出世,Cursor强势崛起,AI编程开始真正改变开发者的工作方式。而到了2026年没有用过AI写代码的程序员,正在被淘汰。不是危言耸听。根据GitHub 2026 Q1的数据报告,超过78%的专业开发者在日常工作中使用AI编程工具,其中42%的开发者表示AI工具使其生产力提升了一倍以上。但工具多了,选择困难症也随之而来。
2026-05-12 17:14:32
11045
原创 DeepSeek-V4 vs GLM-5.1 vs GPT-5.5:2026年大模型三国杀,谁是真正的王者?
2026年4月24日DeepSeek-V4-Pro 是 DeepSeek 迭代至今的集大成之作。它没有走"暴力堆参数"的老路,而是在架构层面做了大量创新。
2026-05-12 16:15:27
2135
原创 C++14 之变量模板与泛型 Lambda 增强
✅变量模板:让模板不再局限于函数和类,常量定义、类型特征都可以泛型化✅泛型 Lambda:告别 Lambda 参数必须写死类型的烦恼,一个 Lambda 通吃所有类型✅组合威力:两者结合可以构建出既通用又简洁的工具集✅零运行时开销:都是编译期特性,不会带来额外的性能负担这两个特性与 C++14 的其他改进(如auto返回类型推导、constexpr函数放宽)一起,让 C++14 成为 C++11 的重要完善。如果说 C++11 是"新语法",那 C++14 就是"新语法的生产级版本"。📌。
2026-05-12 09:00:00
344
原创 C++14 之二进制字面量与数字分隔符
特性语法核心价值典型场景二进制字面量0b0B前缀直接表达位模式位掩码、硬件编程、标志位数字分隔符单引号提升大数字可读性金额、地址、字节大小常量✅可读性提升:位模式一目了然,大数字不再需要数零✅零运行时开销:纯编译期语法糖,不影响性能✅广泛兼容:C++14 标准,所有现代编译器都支持✅维护友好:代码评审时能快速理解位操作的意图从 C++14 开始,再也不用手算二进制转换,再也不用在十六进制地址里默默数位数了。
2026-05-11 09:00:00
269
原创 C++17 之 std::string_view
是 C++17 中最实用的性能优化工具之一✅零拷贝:不分配内存、不拷贝数据,只保存指针和长度✅接口统一:一个参数类型兼容、字符数组✅解析利器substrfind全部零开销✅性能碾压:在处理场景下,比快一个数量级⚠️不拥有数据:底层数据的生命周期必须由调用者管理⚠️不保证 Null 终止:传给 C 风格 API 前要特别小心⚠️只读视图:不能修改底层数据把参数改成,是现代 C++ 中投入产出比最高的优化之一。📌C++14 引入的两个小而美的语法糖——二进制字面量(0b前缀)和。
2026-05-10 09:00:00
383
原创 C++17 之 std::optional 与 std::variant
特性核心用途表达"可能没有值"安全存储多种类型替代方案指针、特殊标记值union + 类型标签关键 APIvalue()value_or()index()get<>()visit()异常风险空值访问抛异常类型不匹配抛异常编译器要求C++17C++17让类型系统帮你管理状态,而不是靠程序员的记忆力和自觉性。optional让"空"有了明确的类型语义,variant让多类型存储不再危险。这两个工具配合使用,能大幅减少运行时错误,让代码更安全、更易读。
2026-05-09 09:00:00
751
原创 C++20 之 Modules
module;// 全局模块片段开始// 模块接口开始main.cppreturn 0;# MSVC# GCC# ClangtrueModules 是 C++20 中改变游戏规则✅编译更快:不再需要反复解析头文件,模块接口只需编译一次✅封装更好:未export的内容对外完全不可见,真正实现信息隐藏✅无宏泄漏:宏定义被限制在全局模块片段中,不会污染使用者✅依赖清晰import比#include更精确地表达了代码依赖关系⚠️生态还在建设中。
2026-05-09 09:00:00
494
原创 C++20 之 Ranges 库
一个Range就是"可以通过begin()和end()来遍历的东西"。这个定义非常宽泛——标准库容器是 Range,C 数组是 Range,也是 Range。// 以下都是 Range// ✅ vector 是 Range// ✅ C 数组是 Range// ✅ initializer_list 是 Range// ✅ string 是 RangeC++20 用 std::ranges::range// 伪代码:concept 的含义// 有 begin// 有 endView。
2026-05-09 09:00:00
475
原创 C++17 之 if constexpr
要点说明是什么编译期条件分支,类似编译期的三元运算解决什么告别 SFINAE 的enable_if地狱核心优势丢弃分支不实例化,一个函数搞定多分支逻辑典型场景模板中的类型分支、参数包展开、条件计算注意事项条件必须是constexpr;注意两阶段查找的陷阱是 C++17 中最实用的特性之一,它让模板编程从"炫技"变成了"工程"。如果你还在用enable_if写模板,强烈建议迁移到——代码量减半,可读性翻倍。
2026-05-08 09:00:00
406
原创 C++20 之 Coroutines 协程
很多人第一次听到协程会联想到线程。对比项线程(Thread)协程(Coroutine)调度方式操作系统内核调度用户态调度(手动/框架)切换开销高(陷入内核态)极低(仅保存/恢复寄存器)并发数量通常数千级别可达百万级别同步原语需要锁、信号量可用无锁设计资源消耗每个线程 1MB+ 栈空间仅需几 KB协程是用户态的可暂停函数。它在线程内部运行,由程序员或调度框架控制何时暂停、何时恢复,不需要操作系统的介入。✅三个新关键字co_await(等待)、co_yield(产出)、
2026-05-07 15:06:09
500
原创 C++17 之结构化绑定(Structured Bindings)
< "温度: " << temp << "°C, "<< "湿度: " << hum << "%" << std::endl;比起data.id……这种写法在数据字段多的时候尤其舒服。结构化绑定是 C++17 中最常用、最实用的新特性之一。✅代码更简洁:一行代码替代多行std::get或.first.second✅可读性更强:变量名即语义,一眼看懂每个值的含义✅适用范围广:数组、pair、tuple、结构体通吃✅零运行时开销:纯编译期特性,不会影响性能。
2026-05-07 11:02:04
249
原创 C++20之Concepts
C++20 引入了 concepts,它为模板编程提供了类型约束的新机制,帮助开发者在编译时更精确地约束模板类型,确保程序的类型安全。通过 concept,我们可以有效地控制模板参数,减少因类型不匹配引起的运行时错误。逻辑运算符:通过 &&(合取)和 ||(析取)可以灵活地组合不同的类型约束,提升了表达式的简洁性和可读性。可变参数模板:与 concepts 结合使用时,原子约束会逐一检查模板参数包中的每个类型。使用嵌套方式,可以实现常规的逻辑“短路”运算。
2024-12-18 21:18:29
1237
原创 C++20之requires
在 C++20 中,requires 关键字是对模板编程能力的显著增强,它通过提供类型约束,帮助开发者在编译期捕捉类型不匹配的问题,而不是依赖运行时错误。requires 可以帮助我们检查某个类型是否满足特定条件,避免了编写错误的模板代码,提升了程序的可读性、可维护性和健壮性。本文将介绍如何使用 requires 关键字进行模板约束,包括简单要求、类型要求、复合要求、嵌套要求及其在可变参数模板中的应用。我们将逐步展示如何利用这些特性提升代码的类型安全性。
2024-12-18 20:58:30
1648
原创 C++17之void_t元函数
本文讨论了如何使用 C++17 引入的 void_t 模板进行类型特征检测,特别是用于检测类中是否存在特定成员类型或成员函数。通过 void_t 结合 SFINAE 原理,我们能够在编译期判断类型是否拥有某些特性,而不会导致编译错误。文章通过 HasTypeMember 和 HasInit 模板分别展示了如何检测类型成员 type 和成员函数 OnInit 的存在,并提供了详细的代码示例和解释,帮助读者理解和应用这些编译期检测技术。在泛型编程中,这种方法能够确保代码在编译期满足特定条件,从而避免运行时错误。
2024-09-29 09:30:00
926
Qt的QFtp模块 可在Qt5之后版本中独立编译使用
2023-07-06
SDL-net源码 可以编译库
2022-12-02
SDL2开源库 VC版本 免安装 直接移动
2022-12-02
Open-Dis C++编译版本
2022-12-02
C++Qt5开发实例大全
2022-09-07
天气识别的数据集weather_photos
2022-08-09
开源xml解析库TingXml。
2022-07-29
Qt网络编程之搭建Udp通信【单播、组播、广播】
2022-06-23
服务器的照片如何如何外链
2022-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅