C++
文章平均质量分 56
翟羽嚄
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 使用 nlohmann::json存储json文件
是 C++ 中一个流行的 JSON 库,由 Niels Lohmann 开发。它提供了一个简单而强大的 API,用于解析、构建、操作和序列化 JSON 数据。是一个模板类,可以用来表示 JSON 数据。它可以表示 JSON 对象、数组、数值、字符串、布尔值和空值等各种类型。支持方便的成员函数和操作符重载,使得对 JSON 数据的访问和修改非常直观和简便。原创 2024-03-02 15:02:31 · 3286 阅读 · 0 评论 -
C++ sort函数中自定义比较函数并传入变量、类的成员变量
lambda函数中的[camera_param_cx, same_traffic_light_max_area]捕获了外部变量camera_param_cx和same_traffic_light_max_area,然后将它们作为参数传入compareRectByScore函数中。这样就可以在compareRectByScore函数中同时使用两个额外的变量了。在vector排序时候,有时候需要自定义排序,这个教程网上也很多,但是一般都是只使用了vector元素内部的变量,这里给出传入变量的实例代码。原创 2024-02-23 11:52:53 · 511 阅读 · 0 评论 -
C++学习笔记——typedef和using
using更为灵活,在现代C++中更受推荐,特别是在需要创建模板类型别名的情况下。typedef在兼容较旧代码、较旧C++标准的情况下仍然有其价值,但对于现代C++来说,using更适用。原创 2024-02-06 15:54:55 · 2036 阅读 · 0 评论 -
deepsort使用tensorrt加速部署1——加载Onnx并转换成engine代码解读并保存engine文件
创建InferBuilder对象——创建Network对象——创建BuilderConfig对象——创建OptimizationProfile对象——创建OptimizationProfile对象——设置输入维度——创建解析器对象——解析ONNX模型文件——使用BuilderConfig对象构建TensorRT引擎——序列化引擎并保存到文件——创建执行上下文。上面代码我新增了读取onnx帮保存为engine的代码,这样就不用每次重新生成了。但是换硬件平台的时候,还是需要重新生成。原创 2023-11-29 01:45:46 · 720 阅读 · 0 评论 -
C++ 学习笔记——C++纯虚函数和抽象类
C++中包含纯虚函数的类,被称为是“抽象类”。抽象类不能生成(new出)对象,只有实现了这个纯虚函数的子类才能new出对象。原创 2023-11-30 16:02:51 · 503 阅读 · 0 评论 -
力扣C++学习笔记——C++ 给vector去重
要使用std::set对std::vector进行去重操作,您可以将向量中的元素插入到集合中,因为std::set会自动去除重复元素。然后,您可以将集合中的元素重新存回向量中。原创 2023-11-20 16:07:24 · 1154 阅读 · 0 评论 -
力扣C++学习笔记——C++ assign全面解析
c++assign是一个C++20标准中新增的头文件,主要提供了assign函数,。它是STL容器操作的重要一环,具有高效、简洁、易用的特点。assign函数有多个版本,一般使用的是容器类型相同或相似的版本。使用起来非常方便,只需一行代码即可完成多种常见操作。二、常用操作assign函数的常用操作包括:1.初始化容器2.复制容器元素3.插入元素4.删除元素三、注意事项使用assign函数时需要注意以下几点:1.容器类型必须相同或相容assign函数只能用于容器类型相同或相容的场合。原创 2023-11-20 10:39:49 · 3828 阅读 · 0 评论 -
C++学习笔记——C++ deque和vector的区别
C++中的std::deque(双端队列)和std::vector(向量)是两种不同的容器类型,它们有以下区别:内部实现方式不同:std::deque使用了一种双端队列的数据结构,它由多个块(chunks)组成,每个块内部存储一部分元素。而std::vector则使用了连续的内存块来存储元素。随机访问性能不同:由于std::vector的元素在内存中是连续存储的,因此它支持高效的随机访问,可以通过索引直接访问任意位置的元素。原创 2023-11-20 10:02:32 · 809 阅读 · 0 评论 -
力扣学习笔记——11. 盛最多水的容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。虽然也能求出来,但是肯定超时,效率很低。代码写的很剪短优美。返回容器可以储存的最大水量。原创 2023-11-12 02:01:28 · 608 阅读 · 0 评论 -
力扣学习笔记——283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]原创 2023-11-12 00:18:01 · 343 阅读 · 0 评论 -
力扣学习笔记——1_两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。原创 2023-11-11 15:51:31 · 259 阅读 · 0 评论 -
力扣C++学习笔记——unordered_set 力扣
即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。用于顺序容器,并且只能在尾部插入元素。它们在避免不必要的拷贝或移动操作方面提供了性能上的好处。是用于在容器中插入元素的成员函数。它们的主要区别取决于容器的类型。unordered_set 容器,可直译为“说明emplace插入数据是插入到开头的。三、unordered_set的初始化。函数都是在容器中就地构造新元素的方法。用于关联容器和无序容器,原创 2023-11-11 13:23:40 · 584 阅读 · 0 评论 -
std::map和std::unordered_map
std::map 和 std::unordered_map 是 C++ 标准库中的两个容器,用于实现键值对的关联。它们之间的主要区别在于底层实现和性能特征。底层实现:std::map 是基于红黑树(一种平衡二叉搜索树)实现的有序映射容器,而 std::unordered_map 是基于哈希表实现的无序映射容器。排序:std::map 中的元素是按照键的排序顺序进行存储的,因此在遍历时会按照键的升序输出。而 std::unordered_map 中的元素是根据哈希函数计算的哈希值存储的,没有固定的顺序。原创 2023-10-24 00:53:04 · 1587 阅读 · 0 评论 -
C、C++ opencv基本函数
【代码】C、C++ opencv基本函数。原创 2023-01-17 22:51:26 · 587 阅读 · 0 评论 -
linux c/C++ jsoncpp makfile如何写
代码】linux c/C++ jsoncpp makfile如何写。原创 2022-08-15 18:18:39 · 343 阅读 · 0 评论 -
C++从绝对路径中提取文件名
封装函数string getPicName(string path) { int l = path.length(); int i; for(i = l-1; i >=0; i--) { if(path[i] == '/') break; } return path.substr(i+1, l-i-1);}使用示例注意:不能直接用,但是可以看数据结构定义。vector<String>file_list;char* cstr = new char[200];原创 2021-12-22 16:37:24 · 2209 阅读 · 0 评论 -
函数注释。
函数注释/*******************************************************************************函数名称: ReadImage描 述: 该函数获取某一文件夹下所有文件名称输 入: 输入文件夹输 出:返 回 值: 文件名称数组作 者:狄云编写时间:2021.9.22*******************************************************************原创 2021-09-22 10:32:49 · 373 阅读 · 0 评论 -
c/c++语言读取某一文件夹下所有图片并利用opencv全部显示出来
c语言读取某一文件夹下所有图片并利用opencv全部显示出来代码代码#include <io.h>#include <string>#include <vector>#include <fstream>#include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/calib3d/calib3d.hpp" #i原创 2021-09-22 10:20:02 · 1899 阅读 · 0 评论 -
C++学习笔记——常用函数积累
1、find函数find函数用于查找数组中的某一个指定元素的位置。比如:有一个数组[0, 0, 5, 4, 4];问:元素5的在什么位置,find函数 返回值 为 2;find (数组名 + 起始查找元素的位置, 数组名 + 结束查找的元素位置, 想要查找的元素)find() 函数本质上是一个模板函数,用于在指定范围内查找和目标元素值相等的第一个元素。如下为 find() 函数的语法格式:InputIterator find (InputIterator first, InputItera原创 2021-09-13 11:17:28 · 2595 阅读 · 0 评论 -
打印输出等级控制,方便调试及发布版本
打印输出等级控制,方便调试及发布版本,我们在编写代码时经常要看一些打印信息,但是发布版本的时候,又不能有太多无关打印,因此需要一些小技巧进行控制输出的打印等级/*打印等级,修改后面的宏定义可以改变函数输出打印等级*/#define ALG_PRTINT_LEVER PRINT_LEVEL_WRN#define ALG_PRTINT(...) SAL_printf(__VA_ARGS__)#define ALG_PRT(...) ALG_PRTINT(__FUNCTION__, __LIN原创 2021-01-24 01:38:22 · 1934 阅读 · 0 评论 -
opencv4 的CV_FOURCC该怎么表示
CV_FOURCC改为VideoWriter::fourcc,即可。/*******************************************工程说明:截取视频里图片,并保存,可以设置截取的帧间隔时间:2020年3月11日作者:diyun*******************************************/#include<opencv2\opencv.hpp>#include <iostream>#include <std原创 2021-01-16 14:56:25 · 5007 阅读 · 0 评论 -
C++ opencv计算图像的水平投影,并返回一幅图像
效果图输入图像输出图像代码//计算图像的水平投影,并返回一幅图像cv::Mat getVerProjImage(const cv::Mat &image){ cv::Mat matTmp = image.clone(); int maxCol = 0, maxNum = 0;//重置255最大数目和最大行 int minCol = 0, minNum = matTmp.rows;//重置255最小数目和最小行 int height = matTmp.rows, width =原创 2020-10-29 00:49:14 · 2862 阅读 · 2 评论 -
C语言基础——%X(十六进制)的几种不同输出格式以及十进制到16进制的转换
int型可以输出为十进制,也可以转换为16进制输出,那么该如何写呢?int型数据的范围是多少呢?unsigned int型呢?十六进制输出只需要**%x**就可以了,只要这个数没有超过他自己定义的范围,都可以输出,unsigned int 范围为0----4294967285#include <stdio.h>#include <stdlib.h>int len...原创 2019-09-07 10:25:19 · 15840 阅读 · 1 评论 -
C++语法基础之关键字与标识符(10月4日暂存)
1. 保留字 C++中的保留字也称关键字,他们是预先定义好的字符集合,对C++编译有着特殊的含义auto : auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型。 详细见:http://blog.youkuaiyun.com/Xiejingfa/article/details/50469045 break :结束当前正在执行的循环(for、while、do…while)原创 2017-09-05 00:08:52 · 1285 阅读 · 0 评论 -
C++笔记——引用(&)的用法和应用实例
C++中引用(&)的用法和应用实例对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅 是想当然,在转载 2017-10-04 12:44:34 · 639 阅读 · 0 评论 -
C++笔记——继承(代码还有些问题)
继承的概念 继承是 C++中类机制的一部分,该机制使类与类之间可以建立一种上下级关系,继承是一种手段,利用继承机制,可以根据另一个类的操作和数据成员来创建新类。 利用继承可以在原有类的基础上构造新类,这一性质使得类与类之间可以建立一种上下级的分类关系。可以说,继承使人们描述事物的能力大大加强和简单化了。派生类就是实现继承的,它继承了起父类的属性和操作,那些父类已经存在,在新的应用中无需修改,所要原创 2017-10-04 00:52:38 · 633 阅读 · 0 评论 -
c++笔记——运算符重载
c++运算符重载总结重载运算符是C++的一种重要特性。在C++中,用户定义的数据类型与基本数据类型int等一样,基本数据类型可以使用标准运算符(如+、-、*、/) 进行运算,那么如何使用标准运算符实现自定义的数据类型的运算呢? 这就需要重载运算符。 c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可转载 2017-10-03 19:17:20 · 566 阅读 · 0 评论 -
C++笔记——类的友元
今天学习到了类的友元,分为友元类和友元函数,下面的文章,我认为写的比较好,十分浅显易懂。1.什么是友元类 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。2.友元类能做什么 友元类可以通过自己的方法来访问把它当做朋友的那个类的所有成员。但是我们应该注意的是,我们把类B设置成了类A的友元类,但是这并不会是类A成为类B原创 2017-10-03 16:05:06 · 872 阅读 · 0 评论 -
C++笔记——类的静态成员和静态成员函数
一.类的静态成员和静态成员函数 类的数据成员和成员函数可以被声明为静态static。类的静态成员也称为类成员,因为它们不需要创建类的对象就可以访问。除静态成员外。C++也允许定义static成员函数。 静态的数据被所有的对象共享,与静态数据成员类似,静态成员函数也属于类本身。1,静态数据成员 将类的某个数据成员声明为static 后,该数据成员就变为类的静态数据成员。静态数据成员属子整个类,而原创 2017-10-02 17:22:14 · 845 阅读 · 0 评论 -
C++笔记——项目案例:创建圆类的对象
有些看不懂,没有成功,先暂存/*10月2日程序——项目案例:创建圆类的对象*///类的定义#pragma onceclass Cycle{private: int x; int y; int r;public: Cycle(void); ~Cycle(void); Cycle(int x, int y, int r); double原创 2017-10-02 12:33:29 · 1458 阅读 · 0 评论 -
C++笔记——c++中#pragma的用法
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参转载 2017-10-02 10:42:24 · 2086 阅读 · 0 评论 -
C++笔记——第一个MFC程序
使用MFC创建的Windows窗口程序 今天用VS2017写了个MFC的窗口程序,代码如下#include "stdafx.h"#include "afxwin.h" // MFC标准库class CMinApp : public CWinApp //定义窗口类 { public: virtual BOOL InitInstance(); //初始化通教声明原创 2017-09-29 00:21:58 · 6855 阅读 · 0 评论 -
C++笔记——基础语法易混点
1, “/”——除法运算符,注意点:当他的两个操作数都是整数时,其计算结果为整数(取整),当有一个操作数为实数时,则结果为实数。2、 “%”——模运算符(求余运算符),注意点:要求两个操作数都是整数或者字符型数据,结果为两个数的余数。3、在使用赋值表达式时,一般应该保证赋值运算符两边的表达式数据类型一致。但也有例外;赋值运算符的结合性是从右至左的;4、sizeof用法:又称求字节运算符,它是单原创 2017-09-27 12:22:51 · 547 阅读 · 0 评论 -
C++学习笔记——C++中四个点代表什么意思?
问:C++中四个点代表什么意思? 答: 表示类的成员。(你说的是两个冒号“:”吧) 如类CA中有成员int a; 则:CA::a表示CA类中的成员a; 举个例子: class CA { int a; int b(); }; 那么:函数int b();的定义就必须是这样的: int CA::b() { //… }...原创 2018-03-18 13:59:44 · 8702 阅读 · 0 评论 -
单片机与计算机通信(上位机)——基于VS2017和stm32
**程序说明:**VSwin32命令控制台程序 调用串口,可以根据自己需要配置串口,完成windows与单片机的数据传输。可作为开发参考使用。直接先贴代码//32与单片机通信,差不多成功了#include <iostream> #include <cstdlib> #include <windows.h> #include <...原创 2018-04-14 22:28:19 · 12343 阅读 · 11 评论 -
(转载)C++ ofstream和ifstream详细用法
原文出自【比特网】,转载请保留原文链接: http://soft.chinabyte.com/database/460/11433960.sh 本文参考于:https://www.cnblogs.com/batman425/p/3179520.html导读ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间在C++中,有一个stream这个类...转载 2018-04-19 12:26:50 · 865 阅读 · 0 评论 -
LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
VS2013运行MFC程序错误提示LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library解决方法:编译选项设置如下:1、【项目】->【属性】->【配置属性】->【C/C++】->【代码生成】->【运行时库】,设置为“多线程DLL(/MD)2、【项目】->【属性】-&g...原创 2019-06-05 01:32:14 · 21126 阅读 · 2 评论 -
error LNK2019: 无法解析的外部符号 _main该符号在函数___tmainCRTStartup 中被引用
错误提示:error LNK2019: 无法解析的外部符号 _main,该符号在函数___tmainCRTStartup 中被引用原因分析本人用VS2013调试一个MFC程序时出现了这个问题。1, 你用vc建了一个控制台程序,它的入口函数应该是main,而你使用了WinMain.你用vc打开了一个.c/.cpp文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为...原创 2019-06-05 01:27:18 · 5416 阅读 · 0 评论 -
warning C4996: 'CWinApp::Enable3dControls': CWinApp::Enable3dControls is no longer needed
VS2013中运行一个MFC的五子棋代码出现下面问题:programs.cpp(56): error C4996: ‘CWinApp::Enable3dControls’: CWinApp::Enable3dControls is no longer needed. You should remove this call.D:\VS2013\VC\atlmfc\include\afxwin.h...原创 2019-06-04 16:30:07 · 1802 阅读 · 0 评论 -
扫雷游戏
https://www.cnblogs.com/acgpiano/p/3987655.htmlhttps://blog.youkuaiyun.com/littlewhitelv/article/details/80636396原创 2019-06-03 23:16:17 · 1244 阅读 · 0 评论
分享