得益于Qt反射机制,我们可以获取类对象的成员信息,这其中就包含了属性信息,属性其实就是类中的一种数据成员,不同在于属性需要通过宏定义Q_PROPERTY进行注册,它的使用也必须满足反射机制的条件——类须直接或间接继承QObject且包含Q_OBJECT宏,这样就可以通过元对象的属性类(QMetaProperty)来获取属性相关信息,下面是
关于线程,最大的误区就是容易与进程混淆,因此首先要能区分两者的概念。再者就是关于线程的一些基本概念,当我们清楚了这些概念之后,对于我们代码的编写更加有利。比如:进程、线程、多线程、同步与互斥、互斥锁、信号量、条件变量、临界资源等。这些是我们学习线程必须知道和掌握的一些知识。进程与线程的区别:首先程序
现有一串待排序的数字,求如何用最快的方式进行升序排序?看到这个问题,是不是有很多同学第一反应是使用快速排序、插入排序,其实在一些特殊情况下还有一种比快速排序更快的排序——桶排序。我们首先来看一下百度百科对桶排序的解释:“ 桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数
在介绍斐波那契查找之前我们要先了解两件事,黄金分割和斐波那契数列,二者是啥关系。首先是黄金分割(也叫黄金比例),这个词经常出现在一些建筑物的设计,黄金分割的近似值是0.618。斐波那契数列又称黄金比例数列,指的是这样的数列:1、1、2、3、5、8、13、21、34……,这个数列从第三项开始,每一项都等于前两项之和(F
Qt开发生成的工程,通过动态编译之后生成对应的可执行文件,如果直接执行该可执行文件则会报错:原因是:Qt动态编译生成的可执行文件依赖非常多的dll文件,并且这些dll文件可能分布在不同文件目录,且这些目录大概率是没有添加在window系统的环境变量。如果我们需要将该执行文件部署到纯洁的操作系统环境(环境中并无Qt开发
RS232标准接口是常用的串行通信接口标准之一,也是现在主流的串行通信接口之一。通信机理:1.初始状态时,RTS、CTS持续为ON,通过通信程序设置和监测RS232引线状态。在应答模式下,计算机中的软件一直监视着振铃指示(RI),等待RI发出ON信号。2.计算机上的通信程序在收到RI信号后,就开始通过振铃指示器ON/OFF变换的次
在使用cJSON库之前,我们的先了解JSON是什么?JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式
在Linux系统下,一切皆文件,文件主要分为五类:普通文件、目录文件、设备文件、链接文件、管道文件。普通文件:是最基本的文件,保存着运行指令和各种数据。普通文件是以ASCII码形式存储,人类能够读懂可以编辑修改的文件。目录文件:是文件信息的集合,实际上就是我们通常认识的“目录”。设备文件:是对计算机硬件的抽象
希尔排序是一种特殊的插入排序,是对直接插入排序的升级改进。所以在学习希尔排序之前,一定要先弄清楚直接插入排序算法。基本思路:设一个序列里有n个待排序的元素,将间隔相同距离的元素分为一组进行比较,这里的间隔称之为增量,增量(gap)通常为n/2(奇数偶数都可以),随着算法的进行增量慢慢缩小,直到相邻的元素比较
关于进程调度需要先了解什么是进程,进程可以简单理解为正在运行的程序。而进程调度的两个关键性指标则是:响应时间与周转时间。响应时间:进程未运行到下次被选中运行的时间间隔。如:创建进程到第一次调度到进程的时间。再比如:进程切换后到下一次调度到该进程的时间间隔。响应时间体现了交互感,如:敲下键盘到屏幕上出