- 博客(38)
- 收藏
- 关注
原创 相机-景深
百度百科中关于景深(depth of field)的定义是:摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。个人理解:焦点前后能拍清楚图像的距离差称为景深。
2024-02-27 10:08:08 694
原创 C++ 继承
但是子类的指针如果指向父类,访问_name和_age时不会有问题,访问到_num时就会超出父类对象的范围,越界访问,所以编译器禁止了子类指针指向父类对象。PS:构造和析构调用顺序,构造子类对象时,先调用父类的构造函数,再调用子类的构造函数,清理对象时,先调用子类的析构函数,再调用父类的析构函数。简单来说:基类实际上是派生类的共性,将其它类都有的属性和方法进行提取,再定义其它类时只需要继承父类,并写出该类独有的属性即可。继承是类设计层次的复用。,这样产生的类,称为派生类,被继承的类称为基类或父类。
2024-02-19 22:09:30 892
原创 C 检查小端存储还是大端
我们首先定义了一个无符号整数i并将其初始化为1。然后,我们创建了一个字符指针c并将其指向i的地址。由于c是一个字符指针,所以它只会指向i的第一个字节。如果系统是小端字节序,那么最低位字节将被存储在内存的最低地址,所以。如果系统是大端字节序,那么最高位字节将被存储在内存的最低地址,所以。该程序就是利用了强转舍弃。
2024-02-05 00:11:22 581
转载 Visual Studio 不能进入断点、未命中断点、断点不可用
在项目中打了断点后,Debug调试中,断点就变成“未命中”状态,断点提示“当前不会命中断点,还没有为该文档加载任何符号”。1.打开项目属性页→配置属性→链接器→调试→生成调试信息,若其中的生成调试信息项为“否”,改为“是(/DEBUG)”。确定保存后再调试看是否解决。3.打开项目属性页→配置属性→C/C++→常规→优化,禁用代码优化功能,此处注意窗口左上角最好不要配置到“所有配置”或者“Release”中去。2.打开项目属性页→配置属性→C/C++→常规→调试信息格式,不能是“无”或者“禁用”。
2024-01-23 11:01:45 85
原创 C++左值和右值
c++中根据表达式使用场景不同,分为左值和右值(其实还有将亡值)。左值的英文简写为“lvalue”,右值的英文简写为“rvalue”。很多人认为它们分别是"left value"、“right value” 的缩写,其实不然。lvalue 是“locator value”的缩写,可意为存储在内存中、有明确存储地址(可寻址)的数据,而 rvalue 译为 “read value”,指的是那些可以提供数据值的数据(不一定可以寻址,例如存储于寄存器中的数据)。
2024-01-23 00:32:19 376
原创 【QT】QThread 成员函数
注意:在 Windows 上,此函数返回由 Win32 函数 GetCurrentThreadId() 返回的 DWORD(Windows 线程 ID),而不是由 Win32 函数 GetCurrentThread() 返回的伪 HANDLE(Windows 线程 HANDLE)从不检查或操作此函数返回的值是安全的,但建议在长时间运行的函数中定期这样做。此函数不会停止线程上运行的任何事件循环,也不会以任何方式终止它。函数,而run内的内容就是子线程执行的内容,除此之外,其他成员函数的执行均在原线程。
2024-01-17 12:41:05 503
原创 c++ define 用法
宏定义分为有参和午餐,一般而言无参更多用constexpr代替无参#define 标识符 字符串// example有参#define 宏名# define 宏名(形参表) 字符串 // example # define add(x + y)(x + y)# define 宏名(形参表) 字符串 // example # define add(x + y)(x + y)# define 宏名(形参表) 字符串 // example # define add(x + y)(x + y)
2024-01-12 00:22:28 425
原创 c++ 填充字符 memset fill
原因:memset中的val是采用无符号形式字符形式表示,即val为多少,只取一个低位字节至于为什么0和-1就可以了,建议看下内存中数据存储方式(补码)0 -> 补码: 0000 0000 0000 0000 0000 0000 0000 0000-1-> 补码: 1111 1111 1111 1111 1111 1111 1111 1111。
2024-01-03 00:51:08 529
原创 C++类模板的声明和定义为什么要放在同一个文件
ps:模板是在需要的时候,才会去生成一个具体化的实例的,比如,你只要一个int型的实例,模板就只会给你生成一个int型的实例,模板本身是不会被执行的(也就是模板本身不产生汇编指令),是模板生成的具体化实例才产生指令(这个实例是隐藏的,我们是看不到的)1、C++编译器在编译代码时是以cpp为单位的,参与编译的只是.cpp文件,不会报错的原因,是因为它能在.h里面找到模板的声明。2、而模板的实现.cpp里面,虽然有模板的具体实现,但是没有谁在该.cpp里面使用一个模板函数,就不会生成一个具体化的实例。
2023-12-27 18:08:11 374
原创 c++ 遍历文件夹
本人使用该方法无法遍历,hFile值为1,不明就里。使用_findfirst和_findnext。不得不说winapi大法好。
2023-12-27 16:00:20 447
原创 Plot 内容整理
matplotlib.pyplot的使用总结大全(入门加进阶)Matplotlib 线型,线色,图形标注Matplotlib:设置坐标轴范围,刻度,位置,自定义刻度名称,添加数据标签Matplotlib中annotate详解Matplotlib之标注图像的annotate和text函数Python-Matplotlib可视化(4)——添加注释让统计图通俗易懂matplotlib调整子图间距,调整整体空白
2023-10-27 10:10:29 33
原创 vector内容整理
C++语言之vector内存分配技术C++vector的reserve和resize比原来的容量小【C++】vector的reserve()和resize()用法vector 删除元素的几种方法std::vector.resize()函数修改vector大小和新增元素,不影响已有元素
2023-10-26 21:34:35 29
原创 初次使用open cv遇到的问题及解决
排查问题发现src1.empty()为false,即非空,这就很奇怪了,发现这里使用了斜杠“/”,突然想到用反斜杠尝试一次。最后一条需要注意,若debug模式引入带d的lib,我这里是debug模式,引入如下lib。果然问题解决了,读取路径有问题,并没有找到该图,但是cv将src1初始化了,所以非空。vs -> 链接器 -> 常规 -> 附加库目录引入opencv lib目录。下载就不多说了,在github可以下载,本人使用opencv4.4。小白一枚,刚使用open cv踩了一些坑,仅此记录。
2023-10-26 21:18:55 38
原创 动态库 静态库
静态库:编译器将数据和函数编译为而二进制文件(.lib),在编译链接可执行文件(.exe)时,编译器从静态库中复制这些函数和数据,并把他们和应用程序的其他模块结合起来,创建最终的可执行文件(.exe),当产品发布时只需要.exe即可。动态库:动态库一般包含引入库(.lib,非静态库)和.dll文件,引入库包含导出的函数和变量的符号名,.dll包含实际的函数和数据。
2023-08-16 19:54:19 63
原创 vs当前项目调试其他项目,通过添加进程,实现调试
选择你要添加的进程即可进入调试模式。调试->开始执行(不调试)PS:需要注意一定要不调试。生成->生成解决方案。
2023-08-01 17:09:59 520
原创 winusb setup 遍历同一hub下的port,获取指定的usb(U盘)盘符
winusb setup usbTreeViewer遍历设备树
2023-06-14 09:09:17 304
原创 高度塌陷是什么?怎么解决
什么是高度塌陷?父元素内容高度自适应,子元素 float 后,造成父元素高度为0,称为高度塌陷问题。怎么解决在子元素的末尾添加一个空的 div ,并设置下方样式div{ clear: both; height: 0; overflow: hidden;}优点:所有浏览器都支持,并且容器溢出不会被裁剪;缺点:在页面中添加无意义的div,容易造成代码冗余。万能清除浮动法在父元素中内容的最后添加一个伪元素来实现第三种方案的功能,具体设置样式如下:父元素:a
2021-07-02 10:23:29 107
原创 andriod room修改表名、列名导致无法重启
andriod 连接room详情点击这里在Entity类里面默认列名是class名称修改表名为@Entity(tableName = "yourTableName")默认表名格式为private String uname;,如果要修改数据库中的表名格式为@ColumnInfo(name = "user_name")private String uname;所有文件配置好之后,第一次运行,0ERROR,数据库的表已经新建,当再次修改表名或者列名后,运行,程序发生错误,但是代码并没有问题,类似如下
2020-12-18 01:35:57 789
原创 nginx修改默认端口
centos下的nginx默认端口是801.首先安装nginx yum install nginx找到nginx.conf文件 find / -name "nginx.conf"目录是这样的:/etc/nginx/nginx.confls /etc/nginx打开nginx文件夹,会出现下面这些文件3.直接打开nginx.conf文件进行修改就可以,nginx.conf.default不需要修改这里我的端口已经改过了,原来默认是80修改完成保存退出4.开放端口端口已经修改
2020-12-02 14:50:44 1973
原创 sort排序
sort排序sort默认从小到大排序 #include<iostream> #include<algorithm> using namespace std; int main() { int a[10]={4,2,3,1,4,5,6,7,8,9}; sort(a,a+10); for(int i=0;i<10;++...
2019-05-06 12:17:32 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人