
C、C++日常记录
文章平均质量分 78
记录遇到的概念理解和代码实现
木彳
AI算法工程师,包括模型优化、嵌入式平台部署应用。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Snap7实现windows/ubuntu与PLC设备通信详解和示例(可下载运行)
本文以Windows系统、C++语言为例进行展开介绍,可直接看第四部分,下载demo运行。原创 2025-07-14 05:30:00 · 732 阅读 · 0 评论 -
C++中new操作符详解:从基础到高级用法
public:std::cout << "分配 " << size << " 字节\n";std::cout << "释放内存\n";new操作符是C++动态内存管理的基石,但随着现代C++的发展,我们应该:(1)优先使用智能指针而非裸指针(2)优先使用标准容器而非原始数组(3)仅在必要时使用new/delete掌握new的各种用法能让你更好地理解C++内存模型,但记住:现代C++的最佳实践是尽量减少显式的内存管理。原创 2025-05-12 05:30:00 · 619 阅读 · 0 评论 -
C++名称空间详解:从原理到实战
通过合理使用名称空间,可以显著提升代码的可维护性和可扩展性,是现代C++开发必备的组织代码技术。原创 2025-03-10 05:30:00 · 373 阅读 · 0 评论 -
C++ 参数传递详解:值传递、指针传递、引用传递
传递副本:函数接收参数的独立副本,修改副本不影响原始数据。默认方式:C++ 默认使用值传递(除非显式使用指针或引用)。传递地址:函数通过指针直接访问原始数据的内存地址。显式操作:需使用 & 取地址符和 * 解引用操作符。传递别名:引用是变量的别名,直接操作原始数据。隐式解引用:无需显式使用 *,语法更简洁。何时使用哪种方式?(1)是否需要修改原始数据?否 → 使用 const 引用传递(大型对象)或值传递(小型数据)。是 → 进入下一步。(2)参数是否可能为空?原创 2025-03-03 05:00:00 · 781 阅读 · 0 评论 -
C++ 内联函数详解与示例
内联函数(Inline Function) 是 C++ 中的一种优化机制,通过在编译时将函数体直接“嵌入”到调用处,避免函数调用的开销(如参数压栈、跳转指令等)。它通过关键字 inline 声明,但具体是否内联由编译器决定。何时用:小函数、频繁调用、替代宏。何时不用:复杂函数、虚函数、递归。核心优势:性能 + 类型安全。通过合理使用内联函数,可以在保证代码可读性的同时提升性能,是 C++ 高性能编程的重要技巧!原创 2025-03-02 16:58:43 · 523 阅读 · 0 评论 -
深入理解递归:从原理到C++实践
递归(Recursion)是编程中一种强大的技术,其核心思想是:函数直接或间接地调用自身。递:不断分解问题(压栈)归:组合子问题的解(弹栈)原创 2025-02-28 05:15:00 · 784 阅读 · 0 评论 -
【C++】udp通信协议详解和示例
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的、面向数据报的传输层协议。它广泛应用于需要高实时性且对数据传输可靠性要求不高的场景,如实时音视频传输、在线游戏等。本文将详细介绍UDP通讯协议的原理、各关键函数的作用及其实现实例,并最后进行总结。原创 2024-08-19 05:00:00 · 1979 阅读 · 0 评论 -
【C++】类中public、protected和private访问修饰符详解和示例
在C++中,类是一种用户定义的类型,它允许我们将数据和操作这些数据的函数封装在一起。为了确保这种封装的有效性和数据的安全性,C++提供了三种访问修饰符:public、protected和private。这些修饰符定义了类成员的访问权限,即哪些成员可以被类的外部、类的内部或派生类访问。本文将详细探讨这三种访问修饰符的作用、原理、区别,并通过示例进行说明。原创 2024-08-14 09:51:40 · 2431 阅读 · 0 评论 -
【C++】pthread函数详解和示例
在现代软件开发中,多线程编程已成为提升程序性能和响应速度的重要手段。C++作为一种高效且功能强大的编程语言,通过POSIX线程(pthread)库支持多线程编程。本文将深入探讨C++中pthread库的主要函数,包括它们的原理、应用案例及代码详解,帮助读者更好地理解和应用多线程技术。原创 2024-08-02 05:00:00 · 1789 阅读 · 0 评论 -
【C++】std::make_shared函数的详解与示例
在C++中,智能指针是一种非常重要的资源管理技术,用于自动管理动态分配的内存,以防止内存泄漏。std::shared_ptr是C++标准库中的一个智能指针类型,它通过使用引用计数来确保当最后一个shared_ptr被销毁或重置时,它所指向的对象也会被自动删除。而std::make_shared则是C++11引入的一个模板函数,用于更高效地创建std::shared_ptr实例。本文将详细解析std::make_shared函数的原理,并提供相关示例。原创 2024-08-01 04:15:00 · 8856 阅读 · 0 评论 -
【C++】多态、继承和封装详解与示例
在C++中,多态、继承和封装是面向对象编程(OOP)的三大核心特性。它们共同支持了代码的复用、扩展和维护。本文将深入解析这三个特性的原理,并通过示例展示它们在C++中的应用。原创 2024-07-31 05:00:00 · 830 阅读 · 0 评论 -
【C++】std::shared_ptr智能指针详解和示例
在C++中,智能指针是一种用于自动管理动态分配内存的机制,旨在减少内存泄漏和野指针的风险。std::shared_ptr 是C++标准库提供的几种智能指针之一,它通过共享所有权的机制来管理动态分配的对象。本文将详细解析 std::shared_ptr 的工作原理、特性,并通过一个应用案例来展示其在实际开发中的使用。原创 2024-07-30 04:00:00 · 1603 阅读 · 0 评论 -
【C++】杨辉三角详解和C++代码示例
杨辉三角的每行第i个数是由上一行的第i-1个数和第i个数相加得到的,且每行的第一个数和最后一个数都是1,每行的中间个数等于它两肩上的数字相加。原创 2023-11-28 14:07:50 · 1750 阅读 · 0 评论 -
数字增益和模拟增益理解和示例
本文对数字增益和模型增益的理解做简单介绍,并使用海康工业相机的MVS提供调参平台进行参数调整和效果展示,最后使用C++模型相应的增益,更加直观的展示效果。原创 2023-11-21 14:48:47 · 2907 阅读 · 0 评论 -
【C++】使用std::vector()函数实现矩阵的加、减、点乘、点除等运算
本文通过vector()函数表示矩阵的形式,对 加、减、点乘、点除等运算进行编码和运行,相应结果如下文所述。原创 2023-11-21 05:45:00 · 4338 阅读 · 0 评论 -
【C++】pow函数实现的伽马变换详解和示例
本文通过原理和示例对伽马变换进行详解,并通过改变变换系数展示不同的效果,以帮助大家理解和使用。通过不同系数值的效果展示也可以看出,系数值在0和1之间时,值越小图像越亮。系数值大于1时,值越大图像越暗。原创 2023-11-20 13:58:50 · 697 阅读 · 0 评论 -
【C++】【Opencv】霍夫直线检测即cv::HoughLinesP()函数详解和示例
cv::HoughLinesP()(函数霍夫直线)功能分析是一种用于检测图像中直线的算法,它基于霍夫变换的原理。通过该算法,我们可以从图像中提取出直线信息,从而对图像进行分析和处理。主要经理边缘检测和霍夫直线处理两个步骤。本文通过示例对该函数进行详细解读,以帮助大家理解和使用。原创 2023-11-20 06:00:00 · 6338 阅读 · 3 评论 -
【C++】【Opencv】cv::Canny()边缘检测函数详解和示例
Canny边缘检测是一种流行的边缘检测算法,由John F. Canny在1986年开发。它是一种多阶段过程,包括噪声滤波、计算图像强度的梯度、非最大值抑制以及双阈值检测。本文通过函数原型解读和示例对cv::Canny()函数进行详解,以帮助大家理解和使用。原创 2023-11-19 15:37:34 · 7861 阅读 · 0 评论 -
【C++】【Opencv】cv::warpAffine()仿射变换函数详解,实现平移、缩放和旋转等功能
仿射变换是一种二维变换,它可以将一个二维图形映射到另一个二维图形上,保持了图形的“形状”和“大小”不变,但可能会改变图形的方向和位置。仿射变换可以用一个线性变换矩阵来表示,该矩阵包含了六个参数,可以进行平移、缩放、旋转等操作。通过原理、函数和示例进行解析,帮助大家理解和使用。原创 2023-11-19 06:00:00 · 9872 阅读 · 8 评论 -
【C++】【Opencv】cv::GaussianBlur、cv::filter2D()函数详解和示例
本文通过函数详解和运行示例对cv::GaussianBlur和cv::filter2D()两个函数进行解读,最后综合了两个函数的关系和区别,以帮助大家理解和使用。原创 2023-11-16 21:02:12 · 4630 阅读 · 2 评论 -
【C++】join ()和detach ()函数详解和示例
简单的来说,join ()方法建立的线程具有阻碍作用,该线程不结束,另一些函数就无法运行。detach ()方法建立的线程,可以和另一些函数同时进行。下面以示例进行详细说明,以帮助大家理解和使用。原创 2023-11-14 18:59:38 · 2465 阅读 · 0 评论 -
【C++】【Opencv】minMaxLoc()函数详解和示例
minMaxLoc()函数 是 OpenCV 库中的一个函数,用于找到一个多维数组中的最小值和最大值,以及它们的位置。这个函数对于处理图像和数组非常有用。本文通过参数和示例详解,帮助大家理解和使用该函数。原创 2023-11-10 15:16:22 · 7223 阅读 · 0 评论 -
yolov8实例分割Tensorrt部署C++代码,engine模型推理示例和代码详解
接上文中的onnx转engine部分详解。本文对yolov8seg实例分割推理部分代码进行详细解不,此部分与常见的不同,后处理部分主要以矩阵处理为主。通过代码注释和示例运行,帮助大家理解和使用。原创 2023-11-10 11:44:41 · 2472 阅读 · 3 评论 -
【Opencv】cv::dnn::NMSBoxes()函数详解
本文通过原理和示例对cv::dnn::NMSBoxes()进行解读,帮助大家理解和使用。原创 2023-11-09 17:58:44 · 7421 阅读 · 0 评论 -
【Opencv】图像融合addWeighted()函数示例和详解
本文通过原理和示例对addWeighted()函数进行详解,,并通过改变融合系数展示多个结果,帮助大家理解和使用。原创 2023-11-09 14:47:47 · 2188 阅读 · 0 评论 -
yolov8实例分割Tensorrt部署,onnx转engine部分示例详解(代码)
本文以yolov8的实例分割模型为例,对onnx转engine格式过程进行详解,方便大家在Tensorrt平台部署自己模型,通过示例帮助大家理解和应用。本文第一部分先对用到的代码进行讲解,应用部分每行都有注释,第二部分通过示例进行展示。在此之前应配置好ONNX和TensorRT库。原创 2023-11-08 16:37:06 · 2000 阅读 · 1 评论 -
【C++】round()、ceil()和floor()函数详解
本文通过参数详解和示例对round()、ceil()和floor()三个函数进行详解,以帮助大家理解和应用。原创 2023-11-08 13:24:59 · 6554 阅读 · 0 评论 -
【Opencv】cv::rectangle、cv::getTextSize、cv::putText、cv::Rect函数详解和示例
本文通过原理详解和示例说明,对cv::rectangle、cv::getTextSize、cv::putText、cv::Rect函数进行了详细的解读,有助于读者的理解和使用。原创 2023-11-04 03:30:00 · 2945 阅读 · 0 评论 -
【C++】sort()、stable_sort()和partial_sort()排序函数详解
本文通过示例对排序函数进行了详细的解读,在选择排序函数时,需要考虑你的具体需求。如果你不需要保持相等元素的顺序,那么可以使用 std::sort()。如果你需要保持相等元素的顺序,那么可以使用 std::stable_sort()。如果你只想对序列的一部分进行排序,那么可以使用 std::partial_sort()。原创 2023-11-03 06:45:00 · 7142 阅读 · 0 评论 -
函数详解:cudaMemsetAsync()、cudaStreamSynchronize()和cudaMemcpyAsync()
本文中,对cudaMemsetAsync()、cudaStreamSynchronize()和cudaMemcpyAsync()函数功能、参数进行了详细解读,并通过示例进行函数和结合使用进行了详细解读,有助于读者了解相应的异步内存操作。原创 2023-11-02 11:22:58 · 7618 阅读 · 0 评论 -
【C++】ifstream、file.good、 file.seekg、file.tellg、file.read详解
本文主要对ifstream、file.good、 file.seekg、file.tellg、file.read等函数功能进行详细解析,包括原理和步骤,最后通过一个示例进行总结。原创 2023-11-01 15:01:12 · 5370 阅读 · 1 评论