自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (性能角度)pass by value的性能不一定比pass by reference低)

(性能角度)pass by value的性能不一定比pass by reference低)

2023-09-03 11:53:07 62 1

原创 为什么malloc(1000*1000*1000*1000*1000*...*1000)能在32位机器上分配成功并使用

首先int会自动向上转为longlong,然后longlong表达的整数是有范围的,编译器会自动对溢出值进行处理。首先这个问题表现形式是:运行malloc分配内存,这个明显在32位机器上是超过4g内存的,但是在运行时并没有报错,还是能正常运行。可以看到补码转原码值直接为0了。所以上述代码其实变为 malloc(0),这就是为什么malloc(1000*...*1000)是能过编译了。然后使用补码转原码工具。

2023-05-06 21:56:46 73

原创 尽量使用前置声明代替在自定义头文件中包含库的头文件

首先我们先示范下满足此编码规范的例子,如上图,在头文件中因为只会用到MyLineEdit类的指针,所以不要包含该类头文件,只需要前置声明。在源文件中因为会使用到MyLineEdit的构造函数,所以必须包含头文件。其次在一个文件中使用多个包含同一头文件的头文件时,会导致编译器提示重定义。首先在比较大型的项目时,多个头文件互相包含,会导致到编译时间过长。讲完这个问题是什么之后,我们就该到讲这个问题为什么的时候了。

2023-05-06 21:40:01 91 1

原创 qt 自定义窗口类,在实现自己的构造函数时为什么会在初始化构造列表调用父类构造函数

其实是无法直接在子类的构造初始化参数列表中初始化qt的父类 成员变量导致会在这个地方调用父类构造函数。如果能够直接初始化父类变量的话,不用父类构造函数直接初始化变量也是可行的。相信如果是学qt而不是简单的用qt的人的话,看到初始化构造列表中,有QWidget(parent)这个父类的构造函数时都会有疑问。有什么用,以及为什么要有这个。如果不调用父类构造函数,就会造成变量值未知,如果有使用这些未初始化的变量,那么会造成不可预知的错误。这个可以很简单的解答,它的作用是将子类对象中包含的父类变量初始化。

2023-05-06 21:23:33 357

原创 opencv中Canny的高低阈值参数简析

解析Canny算法参数中的高低阈值 ,包括来源、用法和怎么通过计算像素值来得到能和阈值比较的值

2023-04-27 10:43:27 3472 2

原创 剑指 Offer 11(154. 寻找旋转排序数组中的最小值 II). 旋转数组的最小数字(实为Hard)

实为Hard

2022-06-07 22:12:08 120 2

原创 Belady现象浅谈

Belady现象:在分页式虚拟存储器管理中,发生缺页时的置换算法采用FIFO(先进先出)算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。

2022-06-01 22:09:47 3908 2

转载 红黑树的插入 删除以及左旋和右旋和搜索

红黑树结构体定义

2022-05-31 13:31:40 50

转载 希尔排序和快排和反转单链表

快排思想 选择一个数 比我小的排我前面 比我大的排我后面 最后递归左右两个子区间int quicksort(int *data, int left, int right) { //每一次递归, 每调用一次, 确定一个值得正确位置if (left >= right) return 0; int i = left; int j = right; int key = data[left];while (i < j) { // while (i &...

2022-05-31 13:27:22 89 1

空空如也

空空如也

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

TA关注的人

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