自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Cursor搭配cmake实现C++程序的编译、运行和调试

Cursor搭配cmake实现C++程序的编译、运行和调试

2024-07-31 11:55:31 2855 4

原创 【数据结构】树

1、每个结点最多有两颗子树2、子树有左右之分。

2024-06-25 15:28:41 979

原创 Box Model

在使用background-image属性给部件指定背景时,默认情况下背景图片只绘制在border之内,可以使用background-clip属性控制元素背景图片(background-image)的展示区域,还可以使用background-repeat属性设置背景图片的重复,用background-origin属性控制元素背景图片定位点(background-position)的起始位置。margin、border、padding默认都为0,此时,四个矩形完全重合。

2024-06-24 17:15:04 331

原创 二叉堆及堆排序

根据限制条件的不同,二叉堆又可分为大顶堆和小顶堆。大顶堆中任意父结点的值大于等于其左右子结点的值,小顶堆中任意父结点的值小于等于其左右子结点的值。将无需的数组理解为一个完全二叉树,然后将它变成一个小顶堆,再不断地摘除它的堆顶,就可以得到一个从小到大的序列了。至此,一个小顶堆建立完成,可以看出堆的建立就是根据限制条件下沉叶子结点的过程。基于完全二叉树,增加一定的限制条件即可得二叉堆。下面以小顶堆为例,介绍二叉堆的一系列操作。

2024-05-31 17:37:29 240 1

原创 设计模式-单例模式

转自。

2024-03-07 15:26:49 405

原创 C++使用正则表达式筛选出文件夹下指定命名格式的文件

std::regex是C++用来表示「正则表达式」(regular expression)的库,于C++11加入。是class std::basic_regex<>针对char类型的一个特化,还有一个针对wchar_t类型的特化为std::wregex。

2024-01-26 11:49:25 1346

原创 浮点数在内存中的存储方式

不用担心,IEEE754已经规定好了,存入内存时E的真实值必须加上一个中间数,对于8位的E,这个中间数是127。例如当指数为-1时,在8位的情况下,只需要存入-1+127,也就是126即可。计算机内部保存M时,默认这个数的第一位总是1,如1.011,因此第一位的1可被省去,只需要保存小数点后面的位,在读取的时候加上第一位的1即可。(1)E全为0(指数非常小):浮点数的指数E以1-127为真实值,有效数字M不再加上第一位的1,变成0.xxxxxx。使得计算出来的值为+-0,以及接近于0的很小的数字。

2023-12-20 14:35:29 114

原创 VS解决方案尚未完成分析

出现这个问题的原因(或者出现解决方案中的文件加载时间过长),通常是由于缓存文件太多,导致vs识别的上一个解决方案,因此对本解决方案内的文件没有及时分析导致。默认路径为:C:\Users\用户名\AppData\Local\Microsoft\VisualStudio。对该文件夹内的不需要的缓存文件进行删除后,重新启动运行 vs即可。

2023-12-11 16:02:23 366

原创 42.接雨水

以下内容基本来自leetcode微信公众号文章,尽量用自己理解的方式进行了一遍描述。

2023-12-06 12:46:12 86

原创 VS结构体重定义;不同的基类型

但是有个疑问,按照A.h中的写法,后面在定义XXX结构体变量时,应该需要带上struct关键字,但其实没有带,程序运行也没有问题。前几天还可以跑起来的代码,今天突然运行不起来了,报"XXX"重定义;(XXX是代码里定义的一个结构体)然后在B.h中#include<A.h>删除B.h中的定义后问题解决。

2023-11-29 17:24:23 557

原创 sizeof和strlen的区别

4.如果以字符数组arr作为函数形参,sizeof(arr)将arr当做字符指针处理,strlen(arr)依然将arr当做字符数组处理。3.strlen测量字符串的实际长度,以字符为单位,以\0结束,sizeof测量字符数组分配的大小,以字节为单位。2.sizeof的参数可以是类型也可以是变量,strlen的参数必须是char*类型的变量。1.strlen是库函数,在程序运行时计算长度,sizeof是运算符,在编译时计算长度。

2023-10-30 16:59:50 75

原创 寄存器位操作

以 a 代表寄存器的值。

2023-10-17 16:36:26 139

原创 踩坑-用_stscanf_s将字符串转成浮点数

这个时候,不幸就发生了。无论我怎么改输入框的值,param一直不变,打断点过去,str变了,但是_stscanf_s没有把param的值改掉,期间我去WC摸了半小时的鱼依然是想不明白。这个时候就正常了,为啥呢,我就又仔细看了下我的param变量,发现它是个double类型的,我给它改成float,之前的写法(不用中间变量)也可以了。我在做MFC开发的时候,想获取界面上一个输入框(Edit Control)的文本,并将它转成浮点数赋值给某个类的成员变量。今天踩了个坑困惑了自己一个下午,特此记录一下。

2023-09-15 18:15:20 147

原创 “错误 LNK2001 无法解析的外部符号” -使用类的静态成员变量

今天在码代码的时候,遇到了“错误 LNK2001 无法解析的外部符号 ”,鉴于最近刚了解了C/C++代码的编译,这次没有之前遇到这个问题那么慌乱了,笃定这就是链接的时候没有找到对应的变量。还好这里的提示信息还是有点用的,大概可以猜出来就是在使用类AA的静态变量static_a的时候出了问题。其实如果对类的静态成员变量的声明及初始化十分熟悉的话,这个时候应该就可以看出问题来了,但是我当时就是不太熟悉,加上都是嵌在项目里的代码,要看出来得费点时间。还好我去网上仔细搜罗了一下,搜到了这篇博客。

2023-09-14 11:45:32 603

原创 C\C++程序运行流程(附编译指令学习)

以下内容参考。

2023-09-12 21:15:58 174

原创 MFC-CListCtrl使用记录

【代码】MFC-CListCtrl使用记录。

2023-09-12 09:56:03 85

原创 MFC-添加类和添加变量

当我们不需要对控件或对话框做自定义的一些改变时,可以直接添加变量去拿到对应的控件和对话框;反之可以添加类,在类中做自定义的操作。这里记录一下最近做MFC开发关于添加类和添加变量的想法。

2023-09-12 09:54:28 495

原创 QString的转换及常用方法

//QSring 转 (int float double) //转int QString age_str = "18"; quint16 age = age_str.toInt(); qDebug() << 12 + age_str << 12 + age; //转float QString pi_str = "3.14"; float pi = pi_str.toFloat(); //qDebug() &...

2023-09-07 14:58:19 632

原创 MFC多文档学习

以下内容摘自MFC多文档开发记录_mfc多文档创建子窗口_柠檬有点酸的博客-CSDN博客在VS中,点击文件-》新建-》项目,进入创建向导,这里使用的是VS2022 选择MFC应用,如果最近没有使用过可以在搜索框中搜索: 给项目起名字,我这里是在已有解决方案中创建,也可以选择创建新的解决方案:点击创建后进入MFC项目创建向导,进行如下配置后直接点击完成:等一会之后自动创建项目如下:运行这个项目,弹出应用程序界面如下:窗口界面和文件的对应关系如下:在资源视图中,可以按键盘delete键或鼠标右键删除菜单栏的内容

2023-09-05 16:55:46 540

原创 利用向导创建MFC程序

以下内容引自。

2023-09-04 17:13:59 716

原创 windows字符集(附char*、string、CString转换)

以下内容摘自英文:一个字符对应一个字节,多字节中文:一个字符对应多个字节,宽字节Unicode,例如,utf-8 3个,GBK 2个VS查看字符集:项目属性-》高级-》字符集多字节转宽字节:字符常量前面加L,例如L"aaa"MFC中TEXT()函数和TCHAR()根据当前选择的字符集做自适应编码的转换。

2023-09-04 11:01:30 154

原创 MFC窗口创建及消息映射机制

然后创建头文件mfc.h(名称自定义)本文是学习以下视频教程的记录。

2023-09-01 17:16:57 145

原创 Windows底层窗口实现

本文是学习以下视频课程的记录。

2023-09-01 17:06:41 95

原创 git分支管理

转自: Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)目录创建与合并分支每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。上图只有一条时间线,在Git里,这个分支叫主分支,即分支。严格来说不是指向提交,而是指向,才是指向提交的,所以,指向的就是当前分支。 每次提交,分支都会向前移动一步,这样,随着你不断提交,分支的线也越来越长。假定已有分支线如下: 当我们使用 创建一个新的分支dev时,Git新建了一个指针叫,指向相同的提交,再把指向,就表示当前分支在上: 用命令查看

2023-06-26 22:46:05 125

原创 野指针和悬空指针

指针指向一块内存空间,当这块内存被释放后,这个指针仍然指向这块内存,即为悬空指针。未初始化的、未确定指向的指针为野指针。

2023-06-10 13:41:47 71

原创 指针的含义、大小及用法

含义:指向另外一种数据类型的复合类型。大小:64位系统中,指针占8个字节。

2023-06-10 13:40:34 80

原创 C\C++字符串操作&memcpy函数的底层实现

dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。如果在字符串 str 中找到字符 c,则函数返回指向该字符的指针,如果未找到该字符则返回 NULL。把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。

2023-06-10 13:39:41 1089 2

原创 C字符串操作strcat/strcat_s

根据个人使用,strcat和strcat_s的不同点是对于溢出的情况,引发的错误不一样,strcat溢出时,出错的地方在释放内存的时候,因为内存溢出导致释放出错;strcat_s会判断有溢出的情况就在调用处报错不执行字符串追加操作了。

2023-06-10 13:39:35 949

原创 C++文件操作(查找、删除、写CSV、读CSV)

【代码】C++文件操作(查找、删除、写CSV)

2023-05-30 23:34:34 1809

原创 字节对齐(内存对齐)

指定对齐值:#pragma pack(value)指定的对齐值value。结构体类型自身对齐值:基本数据类型成员变量中自身对齐值最大的那个。含义:编译器将代码中的数据存储在若干字节的整数倍的地址指向的内存中。有效对齐值:min{自身对齐值,指定对齐值}自然对齐:变量存储的首地址正好是其数据类型大小的整数倍。基本数据类型自身对齐值: 自身数据类型所占字节数。合理使用字节对齐可以节省结构体的占用空间。

2023-05-30 23:32:30 131

原创 C++内存管理

全局区(.bss段):存放全局变量、静态变量,全局区中有一块常量区(.data段),用于存放字符串常量、const修饰的全局变量。(由编译器自动分配,程序运行完自动释放)堆区:new或malloc申请的内存空间,(由程序员控制分配和释放,如果程序运行完还没有释放,操作系统会自动回收)栈区:存放函数的局部变量、函数参数。(由编译器自动分配,函数运行完自动释放)代码区(.text段):存放编译后的二进制代码文件,只读&共享。C++内存分区:代码区、全局区、栈区、堆区。

2023-05-30 23:31:25 106

原创 深拷贝和浅拷贝

这里的b=a会造成未定义行为,因为类Sallow中的copy构造函数是编译器生成的,所以b = a执行的是一个浅拷贝的过程(c++默认的拷贝构造函数是浅拷贝)以上代码,a和b实际指向同一块内存空间,对象析构后,b先将内存释放了一次,之后a又将这块被释放过的内存又释放一遍,会导致程序崩溃。对于一个有资源的类,该类的对象进行复制时,资源会重新分配就是深拷贝,如果只是简单的值拷贝就是浅拷贝。深拷贝后,新对象和旧对象占用不同的内存空间,既拷贝了栈空间的内容,也拷贝了堆空间的内容。

2023-05-30 23:27:40 65

原创 Qt的Graphics/View框架学习

一个场景可以对应多个QGraphicsView对象,以显示一个场景的不同区域,或者以不同的方式来显示该场景。请注意,尽管场景支持几乎无限大小,但滚动条的范围不会超过整数范围(INT_MIN、INT_MAX)。Graphics/View框架被用来存放、显示二维图形元素,处理对图形元素进行操作的交互指令。该类只表示一个场景由哪些图形元素组成,并不负责显示其中的元素。该框架主要包括三个类:QGraphicsScene(场景)、QGraphicsView(视图)、QGraphicsItem(图元)。

2023-05-10 11:54:46 281

原创 os.walk函数

walk(top, topdown=True, onerror=None, followlinks=False)是一个文件树结构生成器函数,返回值是一个三元素的元组:(top, dirs, nondirs),top是输入的目录名称,dirs是top下面所有子目录的名称,nondirs是top下面所有文件的名称。

2023-05-09 21:00:00 253

原创 QPushButton根据文本内容调整大小

1、Qt中stylesheet设置的样式只有在widget显示之后才会生效,

2023-03-16 22:33:14 2254

原创 resize无效的原因及解决

原因:控件处于布局内,大小由布局控制,resize没用。解决方法:使用setFixedSize(w,h)就可以让窗口大小可以改变了。

2023-03-16 22:31:38 1879

原创 QT Creator中编写dll

环境:WIN10, QT5.14.2, QT Creator5.14.1制作DLL打开Qt Creator,新建工程:

2022-04-18 17:51:44 1925 1

空空如也

空空如也

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

TA关注的人

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