自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 #ifndef, #define, #endif

#ifndef MYCLASS_H检查MYCLASS_H是否已经定义。 #define MYCLASS_H定义了MYCLASS_H宏。 #endif // MYCLASS_H结束了#ifndef开始的条件编译块。关键字解释#ifndef: “If Not Defined”,即“如果没有定义”的意思。 #define: “Define”,即“定义”的意思。 #endif: “End If”,即“结束条件”的意思。

2024-08-25 22:37:39 216

原创 Viusal studio中Release 和Debug版本的区别

Debug 版本更适合开发和调试阶段,它包含更多的调试信息和检查,有助于定位和修复错误。Release 版本适用于最终发布,它经过了高度优化,没有不必要的调试信息和检查,可以提供最佳的性能和用户体验。

2024-08-25 20:11:42 400

原创 在多个源文件中使用同一个全局变量

如果imagInfo只在一个源文件中使用,那么不需要在头文件中声明。如果imagInfo在多个源文件中使用,并且希望确保它只被定义一次,那么应该在头文件中使用extern关键字声明它,并在某个.cpp文件中定义它。如果去掉extern的后果如果你在头文件中去掉了extern关键字,并且在每个包含该头文件的源文件中都定义了imagInfo,那么你会得到一个链接错误,因为每个源文件都会尝试定义imagInfo,导致多次定义错误。// 错误:不应该在这里定义 imagInfo。

2024-08-25 15:31:22 373

原创 由于找不到 xxx.dll,无法继续执行代码。重新安装程序可能会解决此问题。

相信大家经常会遇到这个问题,今天就解决这个问题。

2024-08-19 00:10:57 2773

原创 将C++源码封装为DLL文件,并提供给接口进行调用

一:封装DLL文件:在Visual Studio中创建工程时,选择动态链接库: pch.h文件中包含所需的头文件以及库文件(opencv)、以及宏定义、需要到导出的库函数的声明。 dllmian.cpp文件中包含要导出文件中函数的实现。 右键工程“opencv_build”,然后点击生成: 在当前工程项目下的x64/Debug目录下就会生成opencv_build.dll文件至此DLL文件就生成了二.测试DLL文件创建一个测试C++的工程,代码如下,包含刚才生成DLL文件中的pch.h头文

2024-08-18 23:50:27 1130 2

原创 MainWindow已经定义了所有的控件了

当使用QtCreater构建好UI界面时,在Ui::MainWindow* ui下的这个MainWindow类,已经包含了在QtCreater中创建的所有的Widget,包括所有的Qlabel、QPushButton等等,只需要记住这个控件的命名是什么就行了,比如CTValue Button、ContrastNoise Button、ImageNoise Button。在编写代码值直接用就行了,因为在MainWindow已经定义好了。

2024-08-09 10:17:52 233

原创 在QtCreater中利用QtDesinger中手动构建UI界面,然后用Visual Studio打开之前创建的Qt工程,继续进行编码

我的上一篇博客中写的是在Visual Studio中配置Qt环境,然后在Visual Studio用代码编写各种UI界面,然后进行后续的编码。但是如果在时间比较紧急的情况下,我们可以直接现在QtCreater中手动画UI界面,然后利用Visual Studio打开之间创建的Qt的环境,进行继续进行代码的编写。

2024-08-09 10:05:14 275

原创 在Visual Studio配置Qt环境

Qt Visual Studio Tool这个插件安装好后,重启一下Visual Studio。至此在Visual Studio中配置Qt的任务完成。至此,Qt配置就算完成了。

2024-08-09 09:29:37 718

原创 QT代码与转换PDF代码字符编码冲突

当他.h文件#include我的QT头文件时,就会乱码,因为我的代码中有#pragma execution_character_set("utf-8"),这就会与她将字符编码设置为国标有冲突。队友在转换PDF时用UTF-8字符编码会导致中文乱码,因此他的字符编码用的是国标。

2024-08-08 10:14:00 217

原创 Visual Studio工程文件拷贝,配置属性依然存在

当别人的创建的Visual Studio工程文件拷贝到我们自己电脑上时,之前配置的工程文件中的。

2024-08-08 10:00:36 252

原创 Qt5.15.2及其以上的Qt版本在线安装

均已停止提供离线安装包,但是对于。Qt5.15包括以上的版本。下载离线安装包进行安装。

2024-08-01 22:50:23 3022 1

原创 Day7 赎金信

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。因为题目所只有小写字母,那可以采用空间换取时间的哈希策略, 用一个长度为26的数组还记录magazine里字母出现的次数。你可以假设两个字符串均只含有小写字母。依然是数组在哈希法中的应用。

2023-07-20 13:43:53 67

原创 Day7 四数相加II

为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

2023-07-20 11:37:45 71

原创 Day6 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9。所以返回 [0, 1]

2023-07-19 18:29:23 61

原创 Day6 快乐数

快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。所以这道题目使用哈希法,来判断这个sum是否重复出现,如果重复了就是return false, 否则一直找到sum为1为止。如果 n 是快乐数就返回 True;不是,则返回 False。判断sum是否重复出现就可以使用unordered_set。编写一个算法来判断一个数 n 是不是快乐数。

2023-07-19 15:28:43 51

原创 Day6 有效的字母异位词

示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。你可以假设字符串只包含小写字母。

2023-07-19 11:54:16 50

原创 Day6 两个数组的交集

输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。题意:给定两个数组,编写一个函数来计算它们的交集。

2023-07-19 11:24:42 49

原创 Day04 链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。

2023-07-18 18:18:18 90 1

原创 Day04 删除链表的倒数第N个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], n = 1 输出:[] 示例 3:输入:head = [1,2], n = 1 输出:[1]

2023-07-18 10:45:05 47 1

原创 Day04 两两交换链表中的节点

/初始化一个虚拟节点//将虚拟节点与头结点连接起来://当头节点为空,就直接返回空结点//当头结点的下一个结点为空,就意为这链表中只有一个结点,此时也不用两两交换了,直返回那个结点就行;//要交换结点,需要提前准备好3个结点;

2023-07-17 18:03:07 61 1

原创 Day3 206.反转链表

题意:反转一个单链表。示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL。

2023-07-15 22:04:40 112 1

原创 Day2 707.设计链表

力扣题目链接(opens new window)题意:在链表类中实现这些功能:2.头插:在链表的最前面插入一个新节点,插入完成后,新插入的节点成为链表新的头结点; 3.尾插:在链表最后面添加一个节点:4.在第index之前插入一个节点: //4.1 index = 0;插入的节点为链表的新头节点; //4.2 index等于链表的长度(size),那么新插入的节点为链表的尾节点; //4.3 index大于链表的长度,那么返回空; //4.4 index小于

2023-07-15 18:13:39 171 1

原创 Day2 203.移除链表元素

题意:删除链表中等于给定值 val 的所有节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]

2023-07-15 17:57:34 67 1

原创 Day01 27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。

2023-07-14 16:06:57 68 1

原创 Day01 704. 二分查找

1.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。123123说实话,看到本题之后我的第一想法是利用迭代器将vector容器遍历一遍,然后找到Target元素。后来又用了STL中的find函数直接找到目标元素。该题正确的打开方式是:看到有序且无重复元素,就应该想到用二分查找,因为这些都是使用二分查找的前提。

2023-07-13 20:52:17 64 1

原创 字符串输入

cin.get()遇到换行符,会认为是一个空行,会设置失效位,程序直接退出;cin.getline()遇到换行符时,会认为是一个空行,并将空字符串赋值给字符串变量。cin和cin.get()在读取数据后,均会将回车键生成的换行符保留在输入队列中;cin.getline会丢弃换行符,它在存储字符串时,它用空字符串来替换换行符。cin.get和cin.getline()会读取换行符,而cin使用空白(换行符、制表符、空格)来确定字符串的结束位置,但cin不会读取空白。

2023-06-21 15:31:59 112

原创 字符串输入

cin使用空白(空格、制表、换行符)来确定字符串的结束位置。cin不会读取空格、制表符、换行符。cin.get()在读取空行后将会设置失效位,这意味着接下来的输入将被阻断;cin.getline()在读取空行后,将空字符串赋给对应的字符串。,而cin.getline()函数每次读取一行。cin和cin.get()在读取数据后,均会将回车键生成的的。cin.get()与cin.getline()均会。当cin.get和cin.getline()后面。当cin.get和cin.getline()后面。

2023-06-21 15:05:58 78

原创 C++知识点笔记

答:该编译器指令将导致预处理器将iostream中包含的文件添加到程序中。这是一种典型的预处理操作,即在程序编译之前,添加或替换文本。答:在返回值为空void时,可以不使用return关键字。然而,如果不提供返回值,可以使用return结束函数的运行。导致这种问题的原因很可能是什么?答:它使得可以在程序中使用std名称空间下所有定义的名称。5.定义函数时,在什么情况下不必使用关键字return?2.下面的预处理器编译指令是做什么用的?1.C++程序的模块叫什么?3下面的语是做什么用的?

2023-06-15 11:41:29 103 1

原创 1 内存分区模型

堆区数据由程序员管理开辟和释放堆区数据利用new关键字进行开辟内存。

2023-06-14 11:22:08 56

原创 4.7 多态

将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商。多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码。在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容。利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶。静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名。创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口。子类必须重写抽象类中的纯虚函数,否则也属于抽象类。

2023-06-13 09:43:13 62 1

原创 4.6 继承

继承的好处:==可以减少重复的代码==A 类称为子类 或 派生类B 类称为父类 或 基类。

2023-06-11 08:40:07 73 1

原创 4.5 运算符重载

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

2023-06-09 22:15:03 81

原创 4.4 友元

【代码】4.4.2 类做友元。

2023-06-09 15:38:03 119

空空如也

空空如也

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

TA关注的人

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