随笔分类 -  C++

摘要:JSON (JavaScript Object Notation) 作为一种轻量级的数据交换格式,在现代软件开发中扮演着重要角色。在 C++ 开发中,nlohmann/json 库因其易用性和灵活性而广受欢迎。本文将通过实例介绍如何使用这个强大的库进行 JSON 数据的序列化和反序列化操作。 环境准 阅读全文
posted @ 2025-01-07 17:27 非法关键字 阅读(506) 评论(0) 推荐(0) 编辑
摘要:1. RAII 概述 RAII (Resource Acquisition Is Initialization) 是 C++ 中最重要的资源管理机制之一,它将资源的生命周期与对象的生命周期绑定,确保资源的安全使用和自动释放。 历史背景: RAII 概念由 Bjarne Stroustrup 在 19 阅读全文
posted @ 2024-11-15 10:16 非法关键字 阅读(37) 评论(0) 推荐(0) 编辑
摘要:在 C++ 中,智能指针是现代内存管理的重要工具,尤其是在复杂的多线程环境中,能显著减少内存泄漏和悬空指针等问题。std::shared_ptr 是 C++11 引入的一种共享智能指针,通过引用计数机制管理对象的生命周期。本文将详细介绍 std::shared_ptr 的基本用法、循环引用问题、线程 阅读全文
posted @ 2024-11-04 14:07 非法关键字 阅读(1064) 评论(0) 推荐(0) 编辑
摘要:C++高级概念详解 一、智能指针 1. 概述 智能指针是C++中用于自动管理内存的工具,它能够确保在适当的时候自动释放内存,防止内存泄漏。 2. 类型比较 2.1 原始指针 class MyClass { public: MyClass() { std::cout << "Constructor c 阅读全文
posted @ 2024-10-10 16:37 非法关键字 阅读(49) 评论(0) 推荐(0) 编辑
摘要:// File: JsonSerializer // Author: linxmouse@gmail.com // Creation: 2024/09/29 #ifndef JSON_SERIALIZER_H #define JSON_SERIALIZER_H #include <QJsonDocu 阅读全文
posted @ 2024-09-29 15:13 非法关键字 阅读(143) 评论(0) 推荐(0) 编辑
摘要:std::variant 是C++17引入的一个新的标准库类型,它提供了一种类型安全的联合体。这个类可以在同一时间持有几种可能类型中的一个值。本文将详细介绍 std::variant 的概念、用法和实现细节。 1. 基本概念 std::variant 是一个模板类,可以存储几种不同类型中的一个值。它 阅读全文
posted @ 2024-09-27 18:14 非法关键字 阅读(1365) 评论(0) 推荐(0) 编辑
摘要:C++11引入了智能指针,它们是管理动态分配内存的强大工具。本文将详细介绍两种最常用的智能指针: std::unique_ptr 和 std::shared_ptr。 std::unique_ptr 概述 std::unique_ptr 是一种独占所有权的智能指针。它确保一个对象只能被一个 uniq 阅读全文
posted @ 2024-09-27 18:10 非法关键字 阅读(404) 评论(0) 推荐(0) 编辑
摘要:在本文中,我们将介绍如何使用Qt实现一个自定义的GraphicsView,主要是作为笔记使用QGraphicsView框架方面的使用手法、套路,对代码就不做过多的解释了,它具有以下功能: 显示图像 可拖动的十字标记(CrossMarkItem) 可调整大小的ROI(Region of Interes 阅读全文
posted @ 2024-08-09 09:57 非法关键字 阅读(223) 评论(0) 推荐(0) 编辑
摘要:隐式转换在C++中是一种自动将一种数据类型转换为另一种数据类型的机制。虽然它在简化代码编写和提高代码可读性方面有很多优点,但也存在潜在的缺点,可能引发性能问题和错误。理解隐式转换的工作原理及其优缺点,并结合explicit关键字的使用,对于编写高质量的C++代码非常重要。 优点 简洁代码: 隐式转换 阅读全文
posted @ 2024-07-01 10:10 非法关键字 阅读(93) 评论(0) 推荐(0) 编辑
摘要:在现代软件开发中,HTTP REST客户端请求是与服务器通信的重要方式之一。在Qt5中,我们可以使用QNetworkAccessManager类来执行HTTP请求,并使用QSerializer库来解析JSON数据。本文将详细说明如何使用这些工具,并提供GET、POST、PUT、DELETE等请求的示 阅读全文
posted @ 2024-06-27 18:26 非法关键字 阅读(381) 评论(0) 推荐(0) 编辑
摘要:C++ 提供了四种强制类型转换运算符:static_cast、reinterpret_cast、const_cast 和 dynamic_cast。这些运算符各自具有特定的用途,适用于不同的类型转换需求。本文将详细介绍这四种运算符及其应用场景,并讨论它们在向上转换和向下转换中的使用方法。 1. st 阅读全文
posted @ 2024-06-04 14:40 非法关键字 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1. IEnumerable 与 List 的比较 在 .NET 中,IEnumerable 和 List 是两种常用的集合类型,它们有各自的适用场景: IEnumerable<T>: 优点:惰性求值,仅在迭代时计算,适用于大数据集或流式数据处理。 缺点:不能进行索引访问,没有直接的添加或移除元素的 阅读全文
posted @ 2024-05-29 14:21 非法关键字 阅读(20) 评论(0) 推荐(0) 编辑
摘要:本文是在写过的代码中进行回顾,有理解不对的地方,望请指正! 在库(Library)或框架(Framework)设计中,"Rich return value" 是指返回值的丰富性,意味着函数返回的不仅仅是一个简单的值,而是一个包含了额外信息的复合类型。这样的设计可以提供更多的上下文信息,方便调用者理解 阅读全文
posted @ 2024-05-11 18:45 非法关键字 阅读(15) 评论(0) 推荐(0) 编辑
摘要:本文探讨了如何结合Qt和VTK(Visualization Toolkit)开发图形用户界面(GUI),通过一个具体的案例,详细介绍了如何在Qt应用程序中嵌入VTK渲染器,并创建交互式的图形元素,如按钮,以实现更丰富的用户体验。文章还深入剖析了如何处理按钮点击事件,以及如何将Qt的图像数据转换为VT 阅读全文
posted @ 2024-03-01 16:11 非法关键字 阅读(847) 评论(0) 推荐(0) 编辑
摘要:常用vtkWidget的作用和效果: vtkImageCroppingRegionsWidget: 作用:vtkImageCroppingRegionsWidget是一个用于裁剪图像数据的小部分区域的交互式部件。它允许用户在图像上选择感兴趣的区域,并将其用作图像裁剪的参数。 效果:当使用vtkIma 阅读全文
posted @ 2024-02-29 17:50 非法关键字 阅读(927) 评论(0) 推荐(0) 编辑
摘要:引言 在C++中,模板是一种非常强大的特性,它们允许我们编写通用、可重用的代码。但有时,我们需要为某些特定的数据类型或类提供特殊的实现,这时就需要使用到模板特化(Template Specialization)和模板偏特化(Partial Template Specialization)。本文将深入 阅读全文
posted @ 2023-10-19 16:48 非法关键字 阅读(342) 评论(0) 推荐(0) 编辑
摘要:1. 创建工程 使用CMake创建工程 cmake_minimum_required(VERSION 3.20 FATAL_ERROR) project(httprequest LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) se 阅读全文
posted @ 2022-10-26 10:50 非法关键字 阅读(56) 评论(0) 推荐(0) 编辑
摘要:基于c/c++的运行时库MT、MTd、MD、MDd的多样性的以及涉及到相关复杂的第三方库依赖,有过一次项目引用openssl的痛苦经历;另外还会涉及到平台相关的arm-uwp arm64-windows x64-linux x64-osx x64-uwp x64-windows-static x64 阅读全文
posted @ 2022-08-25 16:32 非法关键字 阅读(1806) 评论(0) 推荐(0) 编辑
摘要:依赖包安装 使用神器vcpkg vcpkg install log4cplus[core, unicode]:x86-windows, 安装匹配项目的包 Show Me the Code #ifndef LOGGER_HEADER #define LOGGER_HEADER #include <io 阅读全文
posted @ 2022-08-01 16:16 非法关键字 阅读(322) 评论(0) 推荐(0) 编辑
摘要:前言 关于Direct X的拦截一般情况下才用类的虚表来完成,这种方法更通用,不区别所使用的操作系统。还有一种方法则是找出类其中一个函数的地址,然后通过IDA等工具来找出其它函数的偏移量来完成,依据所查找的资料得出不同的操作系统可能会存在偏移量不一致的情况,最终会导致拦截失败。 在VS中的导出虚函数 阅读全文
posted @ 2020-12-30 21:27 非法关键字 阅读(1067) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示