- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 Qt中的forever是什么?
从forever的字面意思来看,应该很容易猜到它是死循环的意思。实际上forever就是for(;???? 无限循环。
2022-01-19 16:03:33
1123
转载 C++ atomic与memory_order 详解
**atomic**使用atomic可以保证数据读写的原子性,虽然mutex也能做到,但atomic的性能更好。atomic支持的类型有布尔类型,数值类型,指针类型,trivially_copyable类。定义atomic时应该给一个初始值来初始化,或者调用atomic_init()来初始化。atomic<bool> readyFlag(false);atomic<bool> readyFlag;atomic_init(&readyFlag, false);
2022-01-19 15:44:52
768
原创 QObject源代码中的宏Q_CORE_EXPORT的作用
Q_CORE_EXPORT定义在#include <QtCore/qglobal.h>中作用:Q_CORE_EXPORT是一个用来适应不同平台的用来说明这是一个动态库导出类的宏。QT是个跨平台的库,而不同的操作系统,不同的编译器,对动态库的导出说明是不一样的,比如,在windows编译器上,动态库的导出说明通常是这样的:__declspec((dllexport))而在gcc/g++等编译器上,动态库的导出说明通常是这样的:attribute ((visibility(" ")),
2022-01-19 15:19:14
2378
1
原创 OpenGL与PCL库实现点云体系滤波优化及三角面片化
**点云优化过滤方法效果对比**体素滤波 基本保持点云形状及特征点,可以准确地保持宏观的几何外形。优化效率较好,时间根据参数线性增长,本点云建议参数为0.2直通滤波 以坐标系的值限制来进行滤波,该方法的使用比较灵活但完全取决于用户的限定字段和对应条件 ,适合过滤不需要的高度范围内的点,时间根据参数线性递增。统计滤波 可以用来剔除离群点,可能会改变点云的部分特征点,优化效率一般。时间根据参数线性递增,本点云建议参数为50,0.3半径滤波 用户指定每个的点一定范围内周围至少要有足够多的近邻,
2022-01-19 14:41:29
2298
原创 保姆级git指令上传代码至github
1、安装git这一步就不多说了,自行安装。2、创建Github存储库点击这里,创建存储库。将拿到的URL复制下来3、打开git-bash在你需要上传的代码的根目录下右键选择Git Bash Here4、git指令执行git clone https://github.com/slh0506/code.git(替换成自己的URL)然后会在你此时的目录下出现一个你存储库名字的目录,将你要上传的代码放入此目录中。再执行指令将存储库下面的文件都添加进来git add .git co
2022-01-19 14:16:55
179
原创 Q_INVOKABLE与invokeMethod
Q_INVOKABLE#define Q_INVOKABLE该宏定义在$QTDIR/src/corelib/kernel/qobjectdefs.h 中,目的在于让moc识别。使用Q_INVOKABLE来修饰成员函数,目的在于被修饰的成员函数能够被元对象系统所唤起。QMetaObject::invokeMethodinvokeMethod的用法为,尝试调用对象obj的方法member(注意member可以为信号或者是槽),如何member可以被调用,则返回真,否则返回假。QMetaObject::
2022-01-19 13:54:47
147
原创 C到C++ 1
C语言优点:1.直接访问硬件2.运行效率3.移植性C++优点:1.良好复用性2.良好维护性3.良好扩展性复用性:已开发好的代码可以在其他项目中直接使用(!=ctrl+c ctrl+v)维护性:当程序出现问题,能够很快的查找出问题出现在哪一行代码扩展性:当你添加新的功能时,不修改原来的代码,只添加新的代码c++命名空间使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲...
2020-03-09 15:30:06
174
转载 存储空间的分布
存储空间的分布程序的空间分布通常分为(地址从下到上):代码段初始化数据段未初始化数据段堆栈分布如下图所示:(图片来自:C语言内存空间分布详解)这里写图片描述堆地址是从下到上增长,栈地址从上到下增长。一个例题:判断a,b,c,d的存储空间?int a=0;class someClass{int b;static int c;};int main(){int d=...
2020-03-02 18:08:33
366
转载 分配内存
分配内存的方法面试中比较见问的一个问题。注意:只有calloc函数会将分配内存初始化为0new是C++独有的,其是运算符,而不是函数。下面对其分别进行介绍:malloc 函数:void *malloc(unsigned int size)1在内存的动态分配区域中分配一个长度为size的连续空间,如果分配成功,则返回所分配内存空间的首地址,否则返回NULL,申请的内存不会进...
2020-03-02 18:07:58
94
原创 C++ 1
学习了第一章,和学习C语言的感受差不多,当初老师们说只要学好了C语言,学习其他语言就是依样画葫芦,现在自己亲身体验,果然是这样。看完第一章,发现了C语言和C++有好多相似之处1.他们都有预处理指令和头文件以及最后输出的返回值。2.他们表示数的方式都相同,包括类似(二进制数,八进制数,十进制数,十六进制数,负的二进制数,浮点数)。3.表示字符的方式相同。不过,他们在某些方面还是有很大的差别...
2020-03-02 18:06:26
155
转载 shell 15
15、制定目录路径,脚本自动将该目录使用 tar 命令打包备份到/data目录#!/bin/bash#制定目录路径,脚本自动将该目录使用 tar 命令打包备份到/data目录[ ! -d /data ] && mkdir /data[ -z $1 ] && exitif [ -d $1 ];thentar -czf /data/$1.-date +%Y%...
2019-11-03 21:19:34
90
原创 shell14
14、显示当前计算机中所有账户的用户名称#!/bin/bash#显示当前计算机中所有账户的用户名称#下面使用3种不同的方式列出计算机中所有账户的用户名#指定以:为分隔符,打印/etc/passwd 文件的第 1 列awk -F: ‘{print $1}’ /etc/passwd#指定以:为分隔符,打印/etc/passwd 文件的第 1 列cut -d: -f1 /etc/passw...
2019-11-03 21:18:56
94
转载 shell13
13、测试用户名与密码是否正确#!/bin/bash#测试用户名与密码是否正确#用户名为 tom 并且密码为 123456,则提示登录成功,否则提示登录失败read -p “请输入用户名:” userread -p “请输入密码:” passif [ “user"′tom′−a"user" == ‘tom’ -a “user”′tom′−a"pass” == ‘123456’ ...
2019-11-03 21:18:03
97
转载 shell 12
12、生成随机密码(进程 ID 版本,数字密码)#!/bin/bash#生成随机密码(进程 ID 版本,数字密码)echo $$————————————————版权声明:本文为CSDN博主「yinxianpei666」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/yinxianpei666/a...
2019-11-03 21:17:26
75
转载 shell 11
11、删除某个目录下大小为 0 的文件#!/bin/bash#删除某个目录下大小为 0 的文件#/var/www/html 为测试目录,脚本会清空该目录下所有 0 字节的文件dir="/var/www/html"find $dir -type f -size 0 -exec rm -rf {} ;————————————————版权声明:本文为CSDN博主「yinxianpei666...
2019-11-03 21:16:45
144
转载 shell 4
9、点名器脚本#!/bin/bash#编写一个点名器脚本#该脚本,需要提前准备一个 user.txt 文件#该文件中需要包含所有姓名的信息,一行一个姓名,脚本每次随机显示一个姓名while :do#统计 user 文件中有多少用户line=cat user.txt |wc ‐lnum=$[RANDOM%line+1]sed -n “${num}p” user.txtsleep...
2019-10-27 21:03:13
90
转载 shell3
8、编写批量修改扩展名脚本#!/bin/bash#编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件#执行脚本时,需要给脚本添加位置参数#脚本名 txt doc(可以将 txt 的扩展名修改为 doc)#脚本名 doc jpg(可以将 doc 的扩展名修改为 jpg)for i in “ls *.$1”domv $i ${i%.*}.$2done————————...
2019-10-27 21:02:45
87
转载 shell
#!/bin/bash#脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,#猜小了或猜大了,直至用户猜对脚本结束。#RANDOM 为系统自带的系统变量,值为 0‐32767的随机数#使用取余算法将随机数变为 1‐100 的随机数num=$[RANDOM%100+1]echo “$num”#使用 read 提示用户猜数字#使用 if 判断用户猜数字的...
2019-10-27 21:02:08
83
转载 shell 2
10、统计/var/log 有多少个文件,并显示这些文件名#!/bin/bash#统计/var/log 有多少个文件,并显示这些文件名#使用 ls 递归显示所有,再判断是否为文件,如果是文件则计数器加 1cd /var/logsum=0for i in ls -r *doif [ -f $i ];thenlet sum++echo “文件名:$i”fidoneecho “...
2019-10-27 21:01:18
94
转载 shell 1
#!/bin/bash#每周 5 使用 tar 命令备份/var/log 下的所有日志文件#vim /root/logbak.sh#编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖#注意 date 命令需要使用反引号括起来,反引号在键盘键上面tar -czf log-date +%Y%m%d.tar.gz /var/log#crontab ‐e #编写计划任...
2019-10-27 21:00:33
78
原创 shell编程
5、编写批量修改扩展名脚本#!/bin/bash#编写批量修改扩展名脚本,如批量将txt文件修改为doc文件#执行脚本时,需要给脚本添加位置参数#脚本名 txt doc(可以将txt的扩展名修改为doc)#脚本名doc jpg(可以将doc的扩展名修改为jpg)for i in "ls .$1"domv $i ${i%.}.$2done...
2019-10-20 21:45:31
52
原创 shell编程
4、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用 UID 数字对比版本)#!/bin/bash#如果是管理员,则使用 yum 安装 vsftpdif [ $UID -eq 0 ];thenyum ‐y install vsftpdelse#如果不是,输出无法安装软件echo “您不是管理员,没有权限安装软件”f...
2019-10-20 21:40:18
52
原创 shell编程
7、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用字串对比版本)#!/bin/bash#如果是,则使用 yum 安装 vsftpdif [ $USER == “root” ]thenyum ‐y install vsftpdelse#输出不是管理员echo “您不是管理员,没有权限安装软件”fi...
2019-10-20 21:38:25
47
原创 shell编程
2、通过位置变量创建 Linux 系统账户及密码#!/bin/bash#$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数useradd “$1”echo “$2” | passwd ‐‐stdin “$1”...
2019-10-20 21:36:37
57
原创 linux 我对gdp的认识
调试器:gdb三大特点:1.启动被调试的程序;2.可以设置断点,单步执行;3.查看变量的值;查看源代码:list 可执行文件–tuiLayout split layout src layout asm;断点:break+行号;break+行号+条件;Break+函数名Info break;Delete+断点编号,disable+断点编号,enable+断点编号,clear...
2019-10-06 23:27:36
414
转载 linux gdp调试
赖关系上面的文件 hello ,它依赖 hell.ohello.o , 它依赖 hello.shello.s , 它依赖 hello.ihello.i , 它依赖 hello.c 依赖方法gcc hello.* -option hello.* ,就是与之对应的依赖关系$@ 存放的的是编写规则中的目标文件对象$^ &n...
2019-10-06 23:26:27
716
转载 linux gdp使用
Linux调试器-gdb使用1.背景程序的发布方式有两种,debug模式和release模式Linux gcc/g++出来的二进制程序,默认是release模式要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项 2. 开始使用 gdb binFile 退出: ctrl + d 或 quit 调试命令:list(l) 行号:显示binF...
2019-10-06 23:25:52
2047
转载 linux基础
mysql 在进入用户时注意是上一级目录root不允许远程连接; 允许远程连接: update user set password=password(‘你的密码’) where user=’root’;赋予用户权限:update user set host =’%’ where user =’lt’;flush privileges;GRANT ALL PRIVILEGES ON . TO ...
2019-09-26 15:47:01
103
转载 linux命令
三、常用命令(按tab建自动补全)1、注销、关机、重启注销 :logout(登出 )或者exit(退出)关机 :shutdown - h 时间 - h :关机- 时间 :1. now :马上2. 12.30 :指定具体时间3. 3 :几分钟以后注意:关机并不是每个用户都可以完成的,需要超级用户或者被授权的用户来执行该命令,普通用户...
2019-09-26 15:42:57
139
1
转载 linux安装
6、Linux操作系统安装6.1、使用VMware workstation进行安装a. 由于之前没有指定iso镜像文件,因此此处需要先指定系统镜像文件b. 运行此虚拟机注意:如果开机之后鼠标点进去虚拟机出不来,则可以按下组合快捷键“ctrl+alt”。如果启动之后出现类似提示框(不是错误框)则勾选不再提示,并且确定即可:如果在启动时候出现下述错误,则说明电脑没有开启cpu...
2019-09-08 23:43:16
138
转载 虚拟机创建
5、新建虚拟机5.1、使用VMware Workstation(重点)①点击“文件”菜单,选择“新建虚拟机…”选项,选择“自定义”点击下一步②选择兼容性,默认即可,直接下一步③选择镜像文件的时候选择“稍后….”,点击下一步④选择需要安装的操作系统⑤选择虚拟机的名称(名称将会后期出现在左侧)和设置虚拟系统的安装位置⑥cpu设置⑦分配内存⑧选择网络类型,选择nat即...
2019-09-08 23:42:18
74
转载 linux学习
一、Linux发展史1、Linux前身-Unix1968年 Multics项目MIT、Bell实验室、美国通用电气有限公司走到了一起,致力于开发Multics项目。到后期由于开发进度不是很好,MIT和Bell实验室相继离开这个项目的开发,最终导致项目搁浅。1970年(Unix元年,时间戳) Unix诞生当时在开发Multics项目的时候,实验室中有一个...
2019-09-08 23:40:43
87
基于Qt和海康SDK的监控demo,实现预览、回放、抓图和布防报警,C++实现
2022-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人