- 博客(39)
- 收藏
- 关注
原创 C++ 函数模板和类模板
因此,为了避免在每个编译单元都定义函数模板,建议在头文件中对函数模板进行声明定义(即将函数模板的声明和定义都写在一个头文件中,然后在需要使用函数模板的地方加上该头文件)。
2024-08-07 16:33:34
1130
原创 计算机中1kB到底是1000字节还是1024字节
B(字节)KB(千字节)MB(兆字节)GB(吉字节)TB(太字节)PB(拍字节)EB(艾字节)ZB(泽字节)YZ(尧字节)1 TB = 1024 GB,
2024-05-29 10:55:00
654
原创 冒泡排序法的逐步优化
冒泡是指相邻两个元素交换位置(这意味着如果元素已经是按所需顺序排好,那么就无需冒泡)如果是将元素从小到大排序,每轮元素比较后会让无序区最大的元素"冒泡到"有序区,就像水中大泡最先浮出表面,冒泡排序法一开始假设待排序区全部为无序区,有序区为空,每轮从无序区冒泡出当前无序区的一个最值元素到有序区(每轮都会逐位比较当前无序区的相邻元素并作冒泡操作),直到无序区为空,所有待排序区都为有序区。1、最简单实现(最粗糙的冒泡排序,从无序区一轮一轮地比较,不管当前无序区是不是已经是有序状态)(比较相邻的1和6)
2023-09-26 16:00:16
248
原创 C++ explicit的作用
在日常使用中建议对单参构造函数使用explicit声明,从而可以阻止编译器执行非预期的不安全的隐式转换,从而避免一些意外错误的发生。
2023-09-16 21:32:31
269
原创 C++ 异常处理(try catch throw) 学习笔记
如果一层层的函数都不处理异常,异常最终会被拋给最外层的 main 函数。a.异常逐级被捕获,且最多只有一次捕获:如果一个函数在执行过程中 try块中抛出的异常在本函数内就被catch块捕获处理, 那么该异常不会抛给这个函数的调用者(或者说上一级函数);如果throw的异常在本函数没有被处理,则它会抛给上一级函数,如果上一级函数也没有处理,则会抛给上上一级函数,如果所有函数都没有处理,则会抛给main函数中的catch块捕获,如果main函数中没有catch块,那么程序会立即中止。(5)函数的异常声明列表。
2023-08-18 17:29:11
441
原创 shell 脚本执行报错 unexpected operator
unexpected operator:意外的运算符出现这个问题,可以先使用以下步骤排查问题:(1) 检查语法是否正确+编码是否正确(使用utf8编码,不能是utf8-bom编码);(2)确认shell脚本中使用的是#!/bin/bash还是#!/bin/sh,如果是#!/bin/sh修改替换为#!/bin/bash试试...
2022-05-20 14:19:41
4286
原创 centos7安装中文字体
注意:安装过程需要root权限!使用su root切换到root用户1、安装字体库fc-list如果该命令没有需要安装yum install fontconfig2、安装更新字体命令mkfontscale如果该命令没有需要安装yum install mkfontscale3、查看中文字体fc-list :lang=zh 注意冒号前有空格!4、新建目录mkdir /usr/share/fonts/Chinese5、将字体文件放在Chinese目录验证字体文件是否
2022-01-11 10:01:28
4393
转载 QT处理事件的5种方法
方法一:重新实现部件的painEvent()、mousePressEvent()、keyPressEvent()、timerEvent()、showEvent()、hideEvent()等事件处理函数。这是最常用的一种方法、不过只能用来处理特定部件的特定事件。方法二:重新实现notify()函数。这个函数功能强大,提供了完全的控制,可以在事件过滤器得到事件之前就获得它们。但是,它一次只能处理一个事件。方法三:向QApplication对象上安装事件过滤器。因为一个程序只有一个QApplication
2022-01-10 13:45:52
1915
原创 linux之间要保留权限,就要用rsync而不是scp
使用方法:rsync -av source 192.168.2.1:/dest/ination
2021-11-04 15:17:16
857
转载 Ubuntu安装ssh服务并设置开机自动启动
(1)安装ssh服务sudo apt install -y ssh(2)查询ssh服务状态sudo service ssh status(3)单次启动ssh服务sudo service ssh start(4)单次停止sshsudo service ssh stop(5)开启ssh开机自动启动sudo systemctl enable ssh(6)关闭ssh开机自动启动sudo systemctl disable ssh...
2021-10-13 17:20:30
2082
转载 给函数取一个“好”名字
参考资料:https://www.cnblogs.com/dolphin0520/p/10567879.html一、常见的函数命名风格目前,函数最常见的两种命名风格:(1)驼峰命名法: 多个单词组成一个名称时,第一个单词全部小写,后面单词首字母大写;如:void setUserName(string userName);(2)帕斯卡命名法:多个单词组成一个名称时,每个单词的首字母大写;如:void SetUserName(string userName);两种命名风格都是OK..
2021-09-20 16:00:57
1517
原创 防火墙操作命令(centos 7)
防火墙操作命令 centos 7(默认已经安装 firewalld) 防火墙安装 (1)yum install firewalldfirewall-config (2) yum install iptables-services 防火墙卸载 (1) yum -y remove firewalld firewall-config (2) yum -y remove iptables-services 查询防火墙状态 ...
2021-09-08 14:55:12
122
原创 fontForge开源字体定制工具
最近在工作中有一个小插曲。web后台使用的文字渲染插件无法对字体加粗,不巧的是,这个插件已经停止更新了,因此这个bug无法解决, 所以让我用qt实现这个插件的功能(没错,就是为了一个加粗的功能重写整个插件,还好这个插件算是小程序,哈哈) 在我发现QPainter、QImage、QPen这些好用的东西,并且看到QFont自带setBold接口,我确定QT自带的功能实现这个小程序简直是小case,然而,在我花费足够多的时间把整个插件的功能都写好之后,我发现属于需求内的幼圆字体...
2021-08-25 20:20:13
1052
原创 我触碰了上帝的防破解机制
最近常常困惑于社会关系、人生的终始……反思自己每次的一腔热血是因为恐惧还是热情?为什么自己的情绪会随环境起伏?为什么一个人生开始于一个家庭?为什么这么多人生竟然有如此接近的人生轨迹? 有人说人生种种就像是一场游戏,每一个“我”只是玩游戏的人,“我”于另一个“我”而言,只是游戏里的设定人物。这样想来,我对人生该怎么过是否多了几分主动权和想象权?对人生的起起伏伏,是否就像游戏场景的变换,对每一小关游戏的输赢多了几分淡定与泰然?是否我们就可以对遇到的事遇到的人就像玩游戏一样采用更...
2021-07-11 20:37:47
111
原创 Bandizip 7.16和winRAR在文件右键压缩功能上的差异
Bandizip 7.16和winRAR在文件右键压缩功能上的差异(1)winRAR右键对一个包含若干文件的文件夹(假设文件夹名字为test)进行压缩,无论是采用“添加到压缩文件夹”的方式,还是采用“test.rar”的方式,最终得到的压缩文件夹中都会带上test目录(2)Bandizip右键对一个包含若干文件的文件夹(假设文件夹名字为test)进行压缩,采用“添加到压缩文件夹”方式,最终得到的压缩文件夹中会带上test目录;而采用“添加到test.zip”方式,最终得到的压缩文件夹只会直接包含文件
2021-07-10 16:56:02
776
原创 C++构造函数初始化列表
C++构造函数初始化列表(1)形式: 以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式,如下:
2021-06-19 11:26:32
166
转载 gcc搜索动态链接库的路径优先级排序
运行时,Linux动态链接库的搜索路径按优先级排序为:1、编译目标代码时”-Wl,-rpath,”指定的动态库搜索路径(当指定多个动态库搜索路径时,路径之间用冒号”:”分隔。);2、环境变量 LD_LIBRARY_PATH 指定的动态库搜索路径;3、配置文件 /etc/ld.so.conf 中指定的动态库搜索路径;4、默认的动态库搜索路径 /lib,如果是64位系统还包括 /lib64;5、默认的动态库搜索路径 /usr/lib,如果是64位系统还包括 /usr/lib64;注意..
2021-06-17 22:08:20
1820
原创 CentOs7上Qt5.9无法使用搜狗输入法的解决方法
CentOs7上Qt5.9无法使用搜狗输入法的解决方法(1)安装插件:fcitx-qt5 sudo yum
2021-06-09 11:19:52
370
原创 CentOS 7.9上 yum 安装出现 requires libstdc++.so.6问题的解决方法
CentOS 7.9上 yum 安装出现 requires libstdc++.so.6问题的解决方法CentOs上安装Ice执行命令sudo yum install ice-all-runtime ice-all-devel出现如下问题:--> 解决依赖关系完成错误:软件包:libicestorm3.7-3.7.5-1.amzn2.x86_64 (zeroc-ice3.7) 需要:libstdc++.so.6(GLIBCXX_3.4.20)(64bit)解决步骤
2021-05-18 09:23:04
8330
原创 QT 的简介
Qt的简介一、Qt是做什么的? Qt是1991年由Qt Company 开发的跨平台C++图形用户界面应用程序开发框架。Qt既可以开发GUI程序,也可以用于开发非GUI程序,比如控制台工具和服务器。Qt是经过精心设计的面向对象的开发框架,这和MFC(微软基础类库,专门为windows设计的一个用于开发图形界面的类库)或多或少使用面向对象的方法不同。(由于笔者没有真正使用过MFC,所以对MFC的感受暂时还只限于网络上大佬的阐述,这里贴上链接:MFC和Qt的区别)二、QT的发展史1991...
2021-05-16 18:09:31
1971
转载 Linux哪个压缩命令可以在window上解压的
Linux哪个压缩命令可以在window上解压的在linux上可以使用zip命令将文件夹压缩为.zip格式的压缩包,这种压缩包也可以在windows下解压:zip -r myfile.zip myfile/在linux上可以使用unzip 命令对zip压缩包进行解压:unzip myfile.zip...
2021-04-29 13:40:00
519
原创 读书笔记——《高质量程序设计指南:C++/C语言(第3版)(修订版)》之高质量软件开发之道
预防胜于治理,只有从错误根源处杜绝错误产生做到消除错误,才能写出高质量的程序。这本书是在CSDN电子书栏意外看到的一本书,一开始引起我的注意,是因为附录的试题居然和我最近一次面试题目完全一样。书中作者没有大量的专业术语,而是采用聊天的语气,应用大量生活中的类比,读来通俗易懂,丝毫不觉乏味。 软件开发本是一门艺术,就像画画一样,但它又是一种商业活动,需要各种规范去加快进度,这使得它很多时候少了艺术的那份闲情逸致。好的画有其特点,高质量的软件开发也有它的衡量标准,这些衡量标准也叫质量...
2021-04-18 18:23:11
368
转载 使用vs2015编写不带console窗口程序时,使用printf打印输出信息
在VS 2015 上调试不带console 窗口程序,如果使用printf打印输出信息,默认是不会显示出来的。这个时候你可能会想到以下几种方式去打印日志:(1)使用MessageBox消息对话框弹出日志信息;(2)输出日志到文件中;但其实,有一种可以像带console窗口程序一样使用printf的方法,很简单,只需做下如下配置:1、在vs中打开你的解决方案。2、鼠标移动到你的项目名称上,点击鼠标右键,再点击属性,此刻会此项目的属性页。3、在配置属性中,找到生成事件,在找到后期生成事件
2021-04-18 10:10:36
1809
1
原创 CentOs使用locate命令: 无法执行 stat () `/var/lib/mlocate/mlocate.db‘: 没有那个文件或目录
[root@localhost levon]# locate libGLlocate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录解决方案:[root@localhost levon]# updatedb最后,使用locate[root@localhost levon]# locate libGL/home/levon/Qt5.9.0/5.9/Src/qtbase/src/3rdparty/angle/src/li.
2021-03-29 14:19:34
247
原创 CentOs yum安装显示没有可用的软件包
CentOs yum安装显示没有可用的软件包在CentOs7上使用yum命令安装时,提示没有可用的软件包,如下:当出现这个问题时,说明yum源中已经没有对应的安装包了,需要我们安装epel(Extra Packages for Enterprise Linux 企业版 Linux 额外包),如下:之后就可以顺利yum安装啦...
2021-03-26 19:47:47
6331
5
原创 各种排序方法的比较
各种排序方法的比较排序方法有很多,它们各有优缺点,没有绝对最好的和最坏的排序方法,只有最符合某个使用场景的方法。在选用排序方法的时候,我们应该综合考虑以下方面:1)时间复杂度;2) 空间复杂度;3)稳定性;4)算法简单性;5)待排序记录个数n的大小;6)记录本身信息量的大小;7)关键码的分布情况;下面先从每个方面逐个对常用的一些算法进行比较和分析,然后给出综合讨论。一、时间复杂度和空间复杂度排序方法 平均情况 最好情况 最坏情况 辅助空间
2021-03-17 18:47:45
1148
转载 Halcon的形状模板匹配
基本流程:(1)确定出ROI的矩形区域,这里只需要确定矩形的左上角和右下角的坐标即可,gen_rectangle1()这个函数会帮忙生成一个矩形,利用area_center找到矩形的中心;(2)需要从图像中获取这个矩形区域的图像,reduce_domain会得到这个ROI;接下来可以对这个矩形建立模板,在建立模板之前,可以先对这个区域进行一些预处理;(3)创建模板,使用create_shape_model(): a. 金字塔的级数由Numlevels指定,值越大找到物体的时间越少...
2020-06-08 11:53:29
945
转载 opencv中CvMat,CvArr,Mat之间的关系
Opencv中可以代表和显示图像的类有三个:(1)CvMat;(2)plImage;(3)Mat;其中,类之间的继承关系:CvArr -> CvMat -> IplImage ,Mat是C++版本的矩阵类型(CvArr用作函数的参数,无论传入的是CvMat或IplImage,内部都是按CvMat处理)其中,CvMat和Mat之间的相互转换如下:(1)CvMat和C...
2019-09-04 21:02:21
1890
转载 在cmd上编译C文件
在Linux上编译C文件用gcc命令,而在cmd上编译运行C文件可以使用VC++ 6.0的cl命令。在使用cl命令前,需要做的事情如下:一、下载VC++ 6.0 下载链接:https://pan.baidu.com/s/1Mhz_9w1Cv0jeyFa5fnQTqg 提取码:s68o 下载完毕,直接安装即可。二、为cl环境配置环境变量为了能够在...
2019-03-12 16:07:19
3112
转载 JSP在表单中获取中文数据时乱码 && JSP在URL链接中获取中文数据乱码
(1)JSP在表单中获取中文数据时乱码:主要通过在获取中文数据代码前添加以下代码实现(前提是页面其他处的编码都设置成utf-8,以及jsp页面保存时编码方式设为utf-8): response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8");(2)JSP在URL链接中获取中文数据乱码...
2018-04-30 18:24:24
277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人