自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(195)
  • 收藏
  • 关注

原创 Python: 详细介绍pyinstaller打包py文件为可执行exe

如果尚未安装--onefile):生成一个独立的.exe文件,但启动速度稍慢。(默认):生成多个文件,启动较快,但要保留所有文件。

2025-04-02 14:26:17 231

原创 C++: visual studio加载nlohmann/json库及json库使用方法介绍

首先,在代码中包含json.hpp// 使用 json 命名空间,简化调用2. 创建 JSON(1)从std::map或构造 JSONjson j = {// 输出格式化 JSON"age": 25,3. 访问 JSON 数据(1)使用[]访问。

2025-03-24 14:11:58 583

原创 C++: std::tuple详细介绍

/ 定义一个包含三种类型(int, double, std::string)的元组// 初始化std::tuple是C++中一个非常有用的模板类,用于存储和操作固定大小的异构数据集合。它支持元素的访问、修改、比较和解构,广泛应用于需要处理多个不同类型值的场景。

2025-03-20 14:52:06 161

原创 C++:memcpy耗时分析

memcpy函数的耗时取决于多个因素,包括复制的数据量、系统的内存带宽、缓存情况以及具体的实现方式。在大多数情况下,memcpy是一个非常高效的函数,但在某些场景下,它可能会成为性能瓶颈。

2025-03-19 14:38:23 375

原创 C++: std::copy函数解释与举例

是 C++ 标准库中的一个算法函数,用于将一个范围内的元素复制到另一个范围。之前,必须确保目标范围具有足够的空间来容纳源范围的元素。:源范围的结束迭代器,表示要复制的元素序列的结束位置(不包含该迭代器指向的元素)。要求源范围的迭代器至少是输入迭代器,目标范围的迭代器至少是输出迭代器。:目标范围的起始迭代器,表示复制后的元素将从该位置开始存储。,指向目标范围的末尾(即最后一个被写入元素的下一个位置)。:源范围的起始迭代器,表示要复制的元素序列的开始位置。:从源范围的中间位置开始复制到目标范围。

2025-03-19 14:33:04 213

原创 C++:std::vector常用函数及用法详解

✅。

2025-02-06 14:44:43 721

原创 C++:assert()断言函数

assert()assert()assert()是 C++ 标准库<cassert>头文件中的。如果断言条件不满足(即false),程序会终止并打印错误信息,帮助开发者快速发现问题。

2025-02-06 10:29:08 690

原创 C++:常量对象为何只能掉调用常量成员函数

在 C++ 中,如果一个对象是const,那么它的不能被修改。因此,为了保证这一特性,编译器const对象调用(即const修饰的成员函数),从而防止const对象被修改。是指const如果const对象允许调用const成员函数,可能会修改const对象的内部数据,违背const语义,因此编译器会报错。const成员函数。

2025-02-06 10:07:19 231

原创 C++:深拷贝vs浅拷贝(通俗易懂)

在 C++(尤其是 OpenCV、STL 容器等)中,拷贝数据时主要有。

2025-02-05 11:35:23 614

原创 算法:线性同余法(LCG,Linear Congruential Generator)

(数值会根据种子不同而不同)它使用一个递推公式,通过。是一种最简单、最常见的。生成一系列的伪随机数。

2025-02-05 10:56:22 855

原创 C++:内存泄漏

内存泄漏(Memory Leak)是指在计算机程序中,已经动态分配的内存(通常是在堆上分配的内存)由于某种原因未被正确释放,导致这部分内存无法再被程序使用,却又一直占用着系统的内存资源,最终可能会导致系统性能下降甚至崩溃。

2025-02-05 10:06:43 165

原创 C++:深入理解const_iterator的应用

是标准容器提供的一种迭代器类型,它允许读取容器中的元素,但不能修改这些元素的值。适用于需要在遍历过程中保护容器数据不被意外修改的场景。特性只读访问:不能通过修改元素。适用于const容器:在遍历常量容器(const容器)时,必须使用。安全性:防止不小心对容器元素进行修改,提升代码的健壮性。是C++STL提供的一种重要工具,用于只读访问容器元素。数据保护:避免无意修改容器内容。适配常量容器:为常量容器提供访问能力。清晰的开发意图:提高代码的可维护性。通过合理使用。

2025-01-20 14:50:36 477

原创 OpenCV: 深入理解OpenCV中CV_WRAP_AS宏及其作用

宏的定义非常简单,它接受一个别名作为参数,并且在OpenCV的绑定生成过程中,使用该别名暴露相应的函数或运算符。这个宏本身不会在C++代码中改变任何行为,主要是通过帮助生成绑定代码来影响其他语言接口。

2025-01-20 14:24:24 603

原创 C++: Dtrees:load(constg String& filepath, const String& nodeName)中nodeName参数含义

是加载文件时的逻辑名称,而非XML文件的实际字段。它仅在OpenCV加载模型时作为定位参考。是什么,或者文件包含哪些节点,可以打开XML文件检查其结构。如果一个XML或YAML文件中存储了多个模型,可以通过。如果文件中存储的是一棵更大的数据结构,而你只需要其中的一部分,如果只有一个模型,直接使用空的。可以帮助定位到具体的部分。

2025-01-20 11:07:12 353

原创 C++:inline函数的作用

inline函数是一种优化手段,建议编译器将函数调用替换为函数体,减少函数调用开销。适用于短小且频繁调用的函数,但编译器最终决定是否内联。通常在头文件中定义,比宏更安全,具有函数的特性。使用inline函数可以在一定程度上提高程序性能,但要注意其适用场景和编译器的决定权,并且要理解它与宏的区别,避免错误使用。

2025-01-18 14:55:04 406

原创 C++:std::fstream详细介绍

是一个功能强大的类,允许同时对文件进行读取和写入操作。它支持多种打开模式,使得它适用于各种文件操作需求。通过合理使用文件模式、读取和写入方法,可以轻松地处理文件中的数据。

2024-12-04 16:02:36 1300

原创 C++:std::deque简介

std::deque是 C++ 标准模板库(STL)中的一个双端队列(Double-ended Queue)容器。它是一种,允许快速地在序列的两端插入和删除元素,同时支持随机访问。

2024-12-04 15:34:54 501

原创 C++:std::map的重新初始化与清空操作

对于简单清空std::map的需求,推荐使用clear(),更高效且易读。而重新初始化(使用赋值一个新std::map)适用于需要重置底层资源的情况。在实际开发中,应根据场景权衡性能和语义清晰度。

2024-12-04 15:24:38 737

原创 Protobuf:enum作用域详细解释

如果枚举直接定义在。

2024-11-25 14:10:29 330

原创 C++:线程(thread)的创建、调用及销毁

/ 创建线程并传递参数t1.join();// 等待 t1 完成t2.join();// 等待 t2 完成return 0;使用创建和管理线程。join()和detach()用于控制线程的生命周期。避免重复join()或detach(),确保资源管理得当。使用同步机制保护共享数据的访问。通过这种方式,你可以更灵活地创建、管理和销毁 C++ 线程,确保程序的并发性和资源管理的安全性。

2024-11-08 09:33:17 2624

原创 C++:字符串拼接“(“时报错,原因及解决方法详解

在 C++ 中,开发者有时会遇到一个奇怪的现象:尝试拼接字符串时,中间的某个括号或其他字符会引发编译器的"爆红"提示。这通常是一个令人困惑的问题,因为拼接看似是非常简单的操作。,我们可以轻松解决这个问题。希望本文能够帮助您更好地理解 C++ 字符串拼接的细节,避免类似的陷阱。遇到 C++ 字符串拼接时括号“爆红”的情况通常是因为类型不匹配。为了使拼接操作生效,可以通过显式地将字符串字面量转换为。类型,从而避免了任何类型不匹配的问题。令人意外的是,这段代码可能会在中间的。,之后的所有拼接操作都会自动转换为。

2024-11-07 15:26:50 446

原创 Python:切片语法左闭右开 [,)

左闭右开的原则。这种设计在处理子集时非常方便,尤其是对于范围的选择。

2024-10-28 11:46:54 589

原创 C++:c++中调用Python代码的几种方法

Python 提供了一个 C API,允许在 C/C++ 程序中嵌入 Python 代码。首先需要确保 Python 开发包已经安装。你可以通过 来使用 Python C API。编译时,需要链接 Python 库:2. 通过 函数调用 Python 脚本你可以使用 C++ 的 函数来调用外部 Python 脚本。虽然简单,但这方法不太灵活。3. 嵌入 Python 解释器嵌入 Python 解释器允许你更灵活地调用 Python 函数和模块。你可以使用 Python C A

2024-10-24 17:20:37 2611

原创 C++:visual studio项目属性->配置属性->常规->配置类型中.exe与.dll的区别

dll是动态链接库,提供代码供其他程序调用,而.exe是独立的可执行程序,可以直接运行。

2024-10-24 15:41:33 633

原创 C++:内存泄漏问题

内存泄漏会导致内存资源的浪费和程序性能的下降,甚至导致程序崩溃。通过良好的内存管理、使用合适的工具和编程习惯,可以有效防止内存泄漏。

2024-10-14 14:36:33 465

原创 C++:命名空间(namespace)详细介绍与案例

命名空间(namespace)是C++中的一个重要概念,用于组织代码和避免名称冲突。它们允许程序员将标识符(如变量、函数、类等)组织在一起,以便在较大的程序中防止命名冲突。

2024-10-12 16:55:37 408

原创 C++: std::stringstream::str()的用法及使用场景

是一个灵活且强大的工具,适合在处理文本、格式化数据、类型转换等场景下使用。通过str()函数,可以轻松获取流中存储的字符串,或者设置流的内容,以实现更复杂的数据操作。使用字符串拼接类型转换(例如字符串转数值)格式化输出分割字符串数据解析这一工具在开发中非常常见,尤其是在需要灵活处理输入输出的情况下。

2024-10-12 09:51:48 1028

原创 C++:visual studio运行时找不到.dll文件

即使.lib和.dll文件在同一目录下,Visual Studio 在编译时只需要.lib文件,而程序运行时需要.dll文件。你可以通过将.dll文件放在可执行文件目录、修改PATH环境变量、或设置工作目录来解决找不到.dll文件的问题。

2024-10-10 10:49:49 2433 2

原创 Gtest:测试断言详细介绍

gtest) 提供了多种断言(Assertions)来帮助编写单元测试。这些断言用于验证测试条件是否满足,失败时提供相关的调试信息。

2024-10-09 09:54:09 1194

原创 C++:Lambda表达式的含义及用法详解

C++ 中的 Lambda 表达式提供了一种非常灵活、简洁的方式来定义匿名函数,广泛用于算法和函数对象。捕获列表用于访问外部作用域变量。Lambda 可以接收参数、返回值,并在必要时修改捕获变量。它可以与标准库算法(如std::sort)配合使用,简化代码。通过使用 Lambda 表达式,你可以编写出更具表达力和简洁性的代码,尤其是在需要传递短小功能的场景中。

2024-09-24 11:38:07 934

原创 C++:std::stringstream拼接及解析字符串

是一个非常有用的工具,允许你像操作文件流那样操作字符串,适用于字符串的拼接、格式化和解析等任务。

2024-09-18 10:43:01 491

原创 C++:字符串string转成整型int

参数str是一个指向以'\0'结尾的字符串的指针。返回值:返回字符串转换后的整数。如果字符串中不包含有效的数字,返回 0。

2024-09-18 10:21:23 1028

原创 c++:tinyxml2如何存储二叉树

在 TinyXML-2 或任何其他 XML 库中,存储具有左右子节点的多层二叉树时,通常会将每个节点表示为一个 XML 元素,并通过嵌套子元素的方式反映树的结构。二叉树的左右子节点可以作为 XML 元素的子元素来存储。为了明确树的层次结构,每个节点都会包含左子节点和右子节点。

2024-09-18 10:11:34 773

原创 C++:使用tinyxml2获取节点下元素

查找:在rootNode下查找第一个名为"Kind"的子元素。获取文本:获取找到的"Kind"元素的文本内容。返回值:返回一个,指向文本内容。这个操作通常用于从 XML 配置文件或数据文件中提取特定的信息,例如设置参数、配置信息等。

2024-09-18 09:50:42 821

原创 C++:tinyxml2用于解析、操作和生成XML文件

是一个轻量级、简单易用的 C++ 库,用于解析、操作和生成 XML 文件。与其他 XML 库相比,TinyXML-2 旨在提供简单性和效率,特别适合嵌入式系统、游戏开发或需要快速处理 XML 的场景。它是 TinyXML 的继任者,更加轻量和快速,解决了原版的一些局限性。

2024-09-18 09:44:00 2084

原创 C++:opencv生成结构元素用于膨胀腐蚀等cv::getStructuringElement

是一个功能强大的函数,可以生成用于各种图像处理任务的结构元素。通过选择不同的形状和尺寸,你可以创建适合特定应用需求的结构元素,从而实现高效和准确的图像处理。

2024-09-14 10:24:40 931

原创 C++:sort自动排序函数

默认排序std::sort默认按升序排序。自定义排序: 通过提供比较函数或函数对象可以进行自定义排序。排序对象: 可以排序自定义对象,只需提供适当的比较逻辑。std::sort是一个高效的排序算法,通常实现为快速排序(quicksort),在平均情况下具有 O(n log n) 的时间复杂度。

2024-09-11 20:17:17 512

原创 差值图中像素总和的正负性(极性)含义

正总和: 差值图总和为正表示整体上I1比I2亮,但这并不保证I1在所有区域中都比I2亮。局部分析: 对于详细了解图像中的亮度变化,分析差值图中的局部区域是必要的。这样可以更准确地判断图像间的具体亮度差异,而不仅仅依赖于整体总和。

2024-09-11 16:45:31 375

原创 C++:opencv获取矩阵中的最大最小值--cv::minMaxLoc

功能用于计算图像或矩阵中的最小值和最大值,并返回它们的位置。参数: 输入图像、最小值和最大值的存储变量、最小值和最大值的位置的存储变量、可选掩模。应用: 用于图像分析、数据统计和处理等任务,特别是在需要了解图像中像素值的范围和分布时。

2024-09-11 16:42:03 803

原创 C++:opencv多边形逼近二值图轮廓--cv::approxPolyDP

功能用于对轮廓进行多边形逼近,简化轮廓的点集。epsilon参数: 控制逼近精度的误差容忍度,影响轮廓简化的详细程度。应用: 适用于轮廓简化、形状识别和数据压缩等任务,提高图像处理的效率和准确性。通过调整epsilon和closed参数,可以灵活地处理不同类型的轮廓和应用场景。

2024-09-11 11:40:52 862

空空如也

空空如也

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

TA关注的人

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