软考-软件设计师中级备考 4、数据结构
1、数据结构三要素
要素 | 定义 | 分类 | 特点 |
---|---|---|---|
逻辑结构 | 数据元素之间的逻辑关系,是从具体问题抽象出来的数学模型,与数据存储无关 | 1. 集合结构:数据元素同属一个集合,无其他特殊关系 如一盒麦丽素豆子 2. 线性结构:元素存在一对一的线性关系 如消息队列 3. 树形结构:元素存在一对多的层次关系 如数据库部门列表,要有parentId 4. 图状(网状)结构:元素存在多对多的关系 如角色与权限是多对多的网状结构,数据库设计要搞个关系表 | 只关注数据元素间的逻辑联系,不涉及数据在计算机中的存储方式 |
物理结构 (存储结构) | 数据的逻辑结构在计算机中的存储表示,包括数据元素的表示和关系的表示 | 1. 顺序存储结构:逻辑上相邻的元素存储在物理上相邻的单元,元素间逻辑关系由存储单元邻接关系体现 如数组 如聚集索引 | 与计算机的存储设备和存储方式密切相关,直接影响数据操作的效率 |
数据的运算 | 施加在数据上的操作,包括运算的定义(针对逻辑结构)和实现(针对存储结构) | 常见运算如插入、删除、查找、排序、遍历等 | 运算的定义基于逻辑结构,运算的实现依赖于存储结构 |
2、线性表
对比项目 | 顺序存储结构 | 链式存储结构(以单链表为例,双链表、循环链表类似) |
---|---|---|
定义 | 把线性表的元素按逻辑顺序依次存放在一组连续的存储单元中 | 用指针将线性表的元素(节点)链接起来,每个节点含数据和指针 |
实现方式 | 一般使用数组实现 | 链表,由节点构成,节点包含数据域和指针域 |
存储特点 | 存储单元连续,逻辑相邻的元素物理位置也相邻 | 存储单元不一定连续,元素逻辑相邻通过指针体现 |
随机访问 | 可以随机访问,通过数组下标直接定位,时间复杂度为 O (1) | 不能随机访问,需从表头开始顺序遍历,时间复杂度为 O (n) |
插入操作 | 在中间位置插入元素时,需移动插入位置后的元素,平均时间复杂度为 O (n) | 只需修改插入位置前一个节点的指针,时间复杂度为 O (1)(已知插入位置) |
删除操作 | 删除中间位置元素时,需移动删除位置后的元素,平均时间复杂度为 O (n) | 只需修改删除位置前一个节点的指针,时间复杂度为 O (1)(已知删除位置) |
空间需求 | 需要预先分配一定大小的连续空间,可能会导致空间浪费(若分配过大)或溢出(若分配过小) | 不需要预先分配大量连续空间,可动态申请和释放节点空间,空间利用率较高 |
应用场景 | 适合频繁进行随机访问,插入和删除操作较少的场景,如数组实现的线性表用于统计学生成绩等 | 适合频繁进行插入和删除操作,随机访问需求较少的场景,如操作系统中的进程调度链表 |
常见类型 | 无其他细分类型 | 单链表、双链表(节点有两个指针,可双向遍历)、循环链表(单循环链表尾指针指向头节点,双循环链表头尾节点相互连接) |
3、栈和队列
对比项目 | 栈 | 队列 |
---|---|---|
定义 | 只允许在一端进行插入和删除操作的线性表,这一端称为栈顶,另一端称为栈底 | 只允许在一端进行插入操作,在另一端进行删除操作的线性表。插入的一端称为队尾,删除的一端称为队头 |
操作特点 | 后进先出(Last In First Out,LIFO) | 先进先出(First In First Out,FIFO) |
实现方式 | 可以用顺序存储结构(数组)实现,也可以用链式存储结构(链表)实现 | 可以用顺序存储结构(数组)实现,也可以用链式存储结构(链表)实现 |
顺序存储实现 | 通常用一个数组和一个指向栈顶元素的指针来实现。入栈时,将元素放入栈顶指针指向的位置,然后栈顶指针加 1;出栈时,先取出栈顶指针指向的元素,然后栈顶指针减 1 | 用数组实现时,需要两个指针,一个指向队头,一个指向队尾。入队时,将元素放入队尾指针指向的位置,然后队尾指针加 1;出队时,取出队头指针指向的元素,然后队头指针加 1。为了避免数组空间的浪费,通常采用循环队列的方式,即当队尾指针到达数组末尾时,若数组前端还有空闲空间,则将队尾指针绕回到数组开头 |
链式存储实现 | 用链表实现栈时,栈顶指针指向链表的头节点。入栈操作在链表头部插入节点,出栈操作删除链表头部节点 | 用链表实现队列时,队头指针指向链表的头节点,队尾指针指向链表的尾节点。入队操作在链表尾部插入节点,出队操作删除链表头部节点 |
主要操作 | 入栈(Push):将元素压入栈顶 出栈(Pop):将栈顶元素弹出 获取栈顶元素(Top):获取栈顶元素的值,但不弹出元素 判断栈空(IsEmpty):判断栈是否为空 求栈的大小(Size):获取栈中元素的个数 | 入队(Enqueue):将元素加入队尾 出队(Dequeue):将队头元素移出队列 获取队头元素(Front):获取队头元素的值,但不出队 判断队空(IsEmpty):判断队列是否为空 求队列的大小(Size):获取队列中元素的个数 |
应用场景 | 函数调用栈:用于存储函数调用时的局部变量、参数等信息,按照后进先出的原则进行管理 表达式求值:利用栈来处理运算符和操作数,实现表达式的计算 括号匹配检查:检查表达式中的括号是否匹配,通过将左括号入栈,遇到右括号时与栈顶的左括号进行匹配 | 广度优先搜索(BFS):在图的遍历中,用于存储待访问的节点,按照先进先出的顺序进行访问 任务队列:在多任务处理系统中,用于存储待处理的任务,按照任务到达的先后顺序进行处理 缓存系统:按照先进先出的原则淘汰最早进入缓存的数据 |
4、串、数组、矩阵和广义表
对比项目 | 串 | 数组 | 矩阵 | 广义表 |
---|---|---|---|---|
定义 | 由零个或多个字符组成的有限序列,通常用于表示文本数据,如字符串 | 由一组具有相同数据类型的元素组成的数据结构,这些元素在内存中连续存储,通过下标来访问元素 | 一种特殊的二维数组,通常用于 表示具有行列结构的数据, 如数学中的矩阵运算、图像数据等 | 是线性表的推广,它的元素可以是原子(不可再分的数据元素),也可以是广义表 |
数据元素特点 | 元素为字符类型 | 元素类型相同 | 元素类型相同,通常为数值类型 或其他基本数据类型 | 元素可以是不同类型的数据,包括原子和子表 |
存储结构 | 通常采用顺序存储结构,也可以采用链式存储结构 | 一般采用顺序存储结构,便于随机访问元素 | 通常采用二维数组进行存储, 也可以采用特殊的存储方式, 如压缩存储(针对稀疏矩阵) | 可以采用链式存储结构,每个节点包含数据域和指针域,指针域用于指向子表或下一个元素 |
操作特点 | 主要操作包括串的比较、查找、替换、连接等 | 可以通过下标随机访问元素,进行元素的读取、修改等操作 | 支持矩阵的加法、乘法、转置等运算, 以及对矩阵元素的访问和修改 | 对广义表的操作包括取表头、取表尾、求表深度、遍历等 |
相关文章:
软考-软件设计师中级备考 4、数据结构
1、数据结构三要素 要素定义分类特点逻辑结构数据元素之间的逻辑关系,是从具体问题抽象出来的数学模型,与数据存储无关1. 集合结构:数据元素同属一个集合,无其他特殊关系 如一盒麦丽素豆子 2. 线性结构:元素存在一对…...
CMake:设置编译C++的版本
CMake提供了CMAKE_CXX_STANDARD用于设置C++的版本,比如可以通过如下方式设置使用C++23 set(CMAKE_CXX_STANDARD 23) 同时也提供了CMAKE_CXX_STANDARD_REQUIRED可以要求强制使用某个C++版本,比如: set(CMAKE_CXX_STANDARD_REQUIRED ON) 如果设置为 `ON`,那么 CMake 会要求编…...
【angular19】入门基础教程(一):项目的搭建与启动
angular现在发展的越来越能完善了,在vue和react的强势竞争下,它迎来了自己的巨大变革。项目工程化越来越好,也开始拥抱了vite这种高效的构建方式。所以,我们有必要来学习这么一个框架了。 项目实现效果 nodejs环境 Node.js - v^…...
在使用Python的Selenium库打卡网页后,通过CDP命令获取所有cookies(包括Httponly和Secure的cookies)
通过 Chrome DevTools Protocol (CDP) 结合 Selenium 可以直接获取浏览器存储的所有 Cookies(包括所有域名下的 Cookies),以下是详细步骤: 步骤 1:配置 Chrome 启用 CDP启动 Chrome 浏览器时需启用远程调试端口&#…...
Deepseek-v3+cline+vscode java自动化编程
1、Deepseek DeepSeek 充值后,创建apikey 2、vscode Visual Studio Code - Code Editing. Redefined 3、下载插件cline 4、配置deepeseek-v3 的密钥到cline 5、不可用 在开始的几次调用能正常使用起来,用了几次后,不能使用了,请求…...
5G育种技术之植物性状订制
行业展望 我国农作物种业市场规模逐年增长,其中以粮食作物种子市场规模较大。目前我国育种产业发展仍处于初级阶段,存在龙头企业市场占有率和行业集中度不高、企业育种技术和水平落后于发达国家、种企研发投入不足等问题。虽然基因编辑技术的出现有望改…...
12前端项目----添加购物车1.0
商品添加购物车 商品数量添加购物车浏览器本地存储localStoragesessionStorage添加成功页面 商品数量 输入为数字,最少为1<div class"cartWrap"><div class"controls"><input autocomplete"off" class"itxt&quo…...
Elastic Platform 8.18 和 9.0:ES|QL Lookup Joins 功能现已推出,Lucene 10!
作者:来自 Elastic Elastic Platform Team Elastic 最新发布的 8.18 和 9.0 版本包含了强大的更新,将显著提升你的体验、增强查询性能并优化日志管理。无论你是在处理搜索、可观察性还是安全用例,本次发布都带来了大量新特性,旨在…...
两地三中心
1. 什么是同城备份 ✅ 定义: 主机房和备份机房都在同一座城市,通常距离几十公里以内(比如10-50公里)。 ✅ 特点: 网络延迟很低(毫秒级),可以做到实时同步/热备份。 恢复速度快&am…...
数据结构第七章(一)-顺序查找和折半查找
数据结构第七章(一) 顺序查找和折半查找一、查找1.平均查找长度(ASL) 二、顺序查找1.实现2.算法优化 三、折半查找1.实现2.查找判定树 四、分块查找1.算法思想2.查找效率分析(ASL) 总结 顺序查找和折半查找…...
springboot项目之websocket的坑:spring整合websocket后进行单元测试后报错的解决方案
前排提醒:还是博主菜,见识短浅,没遇到过这个问题。。。 起因 前段时间学习websocket和sse,写demo用了spring框架。后来又写了新的spring单元测试类demo去测试,结果启动后报错,报错信息提示websocket的相关…...
在单片机编程中充分使用抽象工厂模式,确保对象创建的限制,多使用抽象接口避免多变具体实现类
背景 在软件架构设计上追求稳定,就必须多使用稳定的抽象接口,少依赖多变的实现;具体编码时可以充分使用抽象工厂模式 举例进行详细讲解和说明抽象工厂模式在单片机开发中的应用 抽象工厂模式是一种创建型设计模式,它提供了一种方式,可以将一组相关的对象创建封装到一个…...
喷泉码技术在现代物联网中的应用的总结和参考文献
总结 物联网与 5G 技术高速发展,数据传输对可靠性和实时性提出严苛要求。前向纠错码是增强通信鲁棒性的关键,但平衡冗余资源开销与编解码效率的矛盾是核心难题。LT 码和 Raptor 码是无率码典型。理论上它们能达渐进最优性能,然而实际系统受数据包规模、计算资源等限制,其工…...
vuex与vuex-persistedstate 插件固化数据
一,vuex与vuex-persistedstate 插件固化数据 的小案例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>Vuex基础案例</title></head><body><div id"app"&…...
如何在WordPress网站中设置双重验证,提升安全性
随着互联网的不断进步,网站的安全问题越来越受到重视。尤其对于WordPress这样常用的建站平台,安全性显得尤为重要。尽管WordPress自带一定的安全性,但仅依靠用户名和密码的登录方式仍然存在风险。因此,启用“双重验证”便成为了提…...
2025系统架构师---基于规则的系统架构风格
引言 在业务规则频繁变更、决策逻辑高度动态化的现代企业环境中,基于规则的系统架构风格(Rule-Based System Architecture Style)通过将核心业务逻辑抽象为可配置规则、规则引擎与决策服务的分离,实现了业务敏捷…...
Python排序中lambda函数详解
在 Python 中,lambda 函数是一种匿名函数,通常用于需要一个函数但又不想为其定义一个正式名称的情况。在排序操作中,lambda 函数用于指定排序的依据。 lambda 函数的基本语法 lambda 函数的基本语法如下: lambda arguments: ex…...
web 基础与 http 协议
目录 一 Web 基础 1. 域名和 DNS 1.1 域名的概念 1.2 DNS 2. 网页与HTML 2.1 HTML 概述 2.2 HTML 基本标签 2.3 网站和主页 3. 静态网页与动态网页 3.1 静态网页 3.2 动态网页 二 HTTP 协议 1. HTTP 协议概述 2. HTTP 方法 3. HTTP 状态码 4. HTTP 请求流程分析…...
记一次奇妙的Oracle注入绕WAF之旅
0x01 一个登陆框 上班时遇到了一个登陆框 看着这个复古的界面,于是上手除了admin123456之外顺手点了个 于是弹出了一条有意思的报错 这就有意思了,毕竟已经很久没在登陆框遇到sql注入了,当我想当然的认为万能密码可以秒时,事情出…...
python裁剪小说封面标题
一张矩形图片 比如50*100 大小 中心点的坐标是是(0,0) 左上角是(-25,50) 右上角是(25,50) 左下角是(-25,-50) 右下角是(25,-50) 我希望你能用python,帮我对本地指定图片切割大小,计算出该图片的中心坐标,然后按照我输入的长宽具体值,比…...
高性价比手机如何挑选?
这四个关键点,助你找到心仪机~ 一、性能强者:游戏娱乐畅快到底 处理器相当于手机的 “大脑”,处理速度快、能力强,运行大型游戏毫无压力。 搭配上大容量运存,多任务切换也能秒速完成,再也不怕游戏卡顿啦。…...
Java面试场景深度解析
Java面试场景深度解析 在互联网大厂Java求职者的面试中,经常会被问到关于Java项目中的各种技术场景题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官:马架构,欢迎来到我们公司的面试现场。请问您对Java内存模型…...
【DeepSeek认证】最好的MODBUS调试工具
根据搜索结果,MThings 和 Modbus Poll 是当前被广泛推荐且功能强大的MODBUS调试工具。以下是两者的详细对比及推荐理由: 1. MThings 核心优势: 主从一体化:支持同时模拟MODBUS主站和从站,无需切换工具即可完成双向调…...
欧莱雅集团:利用 Google Maps Platform Environment API 提供个性化护肤推荐
在欧莱雅集团,美丽绝不仅仅停留在表面。如今,这一点比以往任何时候都更加真实,因为公司将其深厚的科学专业知识与尖端技术相结合,以重塑美丽的未来。其成功的关键在于承诺不为科技而使用科技。其所有创新都满足了消费者的明确需求…...
2025三掌柜赠书活动第十五期:高并发系统:设计原理与实践
目录 前言 什么是高并发? 高并发系统的挑战 设计原理 1、分布式架构 2、缓存与异步处理 3、数据库优化 4、弹性扩展 实践方法 1、性能监控与分析 2、压力测试 3、故障排查与容错机制 关于《高并发系统:设计原理与实践》 编辑推荐 内容简介…...
【Spark入门】Spark架构解析:组件与运行机制深度剖析
1 Spark架构全景图 Apache Spark作为当今最流行的大数据处理框架之一,其卓越性能的背后是一套精心设计的分布式架构。理解Spark的架构组成和运行机制,对于性能调优和故障排查至关重要。 1.1 核心组件架构 组件交互流程: Driver初始化…...
电子电器架构 -- 汽车零部件DV试验与PV试验的定义及关键差异
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
交换机配置DHCP
交换机配置DHCP 背景先关闭路由器的DHCPconsole口连接到交换机配置交换机 背景 路由器的dhcp分配IP地址变慢,怎么处理 先关闭路由器的DHCP 查看路由器中DHCP地址池范围; 关闭路由器的DHCP console口连接到交换机 协议Serial端口COMX波特率9600流控无 配置交换机…...
【人工智能】边缘智能的突破:Ollama模型压缩技术与DeepSeek部署实践
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着边缘计算的兴起,将大型语言模型(LLM)部署到资源受限的边缘设备成为研究热点。Ollama凭借其高效的模型压缩技术和轻量级推理框架,为…...
基于STM32、HAL库的DS2401P安全验证及加密芯片驱动程序设计
一、简介: DS2401P是Maxim Integrated(现为Analog Devices)生产的一款1-Wire硅序列号芯片,具有以下特点: 64位唯一ROM编码(包括8位家族码、48位序列号和8位CRC校验码) 单总线接口,…...
日志收集之 logback使用
一 简介 1.1 Logback 是一个用于 Java 应用程序的强大日志框架,广泛应用于企业级应用中。它是由 SLF4J 的创始人开发的,旨在成为 Log4j 的替代品。Logback 提供更高级、更灵活的功能,同时还支持与 SLF4J 的无缝集成。 2.2 Logback分为下面几…...
Linux学习笔记(一):Linux下的基本指令
文章目录 Linux下的基本指令1. ls指令2. pwd指令3. cd指令4. touch指令5. mkdir指令(牢记)6. rmdir指令 && rm 指令(牢记)7. man指令(牢记)8. echo指令9. cp指令(牢记)10. m…...
Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(二)
一、使用介绍 官方网页:Ollama官方网址 中文文档参考:Ollama中文文档 相关教程:Ollama教程 使用版本:Unity 2022.3.53f1c1、Ollama 0.6.2 示例模型:llama3.2 二、运行示例 三、使用步骤 1、创建Canvas面板 具体…...
SDC命令详解:使用get_clocks命令进行查询
相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 get_clocks命令用于创建一个时钟对象集合,关于设计对象和集合的更详细介绍,可以参考下面的博客。需要注意的是,在有些工具中还…...
git 修改用户名和邮箱
在 Git 中修改用户名和邮箱地址是常见的任务,这可以确保你的提交记录使用正确的身份信息。你可以通过简单的命令来完成这一操作。 全局配置 修改全局用户名 要修改全局的用户名,请执行以下命令: git config --global user.name "New…...
pg数据库删除模式
不能直接使用 DROP SCHEMA "app_sys" 删除, 这样会报错 cannot drop schema app sys 20250416 because other objects depend on it DETAlL: extension uuid-ossp depends on schema app sys 20250416sequence app sys 20250416.app sys id seq depend…...
【C++】Googletest应用
Googletest 1 配置 使用cmake配置: 具体文件后面上传补充 ./test.out --gtest_filterXXXTest.xxx 2 gdb 为了跟踪流程,可以使用gdb; gdb ./xxx.out gdb --args ./gtest --gtest_filterxxx.xxx设置运行参数 set args --gtest_filterxxx.…...
QgraphicsView异步线程加载地图瓦片
本节主要记录一下qt开发过程中离线地图瓦片的加载方式,瓦片加载选择graphicsView控件,同时为了不影响主线程事件和其他操作,这里采用了异步线程的操作,将地图瓦片加载的步骤放到了异步子线程之中。注:本记录仅为本人笔…...
机器学习day2
使用KNN算法实现机器学习 给我一个苹果的图片 我能预测出这个是一个苹果 代码: # 导入需要的库 # 读图 import os import cv2 # 绘图 import matplotlib.pyplot as plt import seaborn as sns # 数组 import numpy as np from skimage.feature import hog from sk…...
jquery解决谷歌浏览器自动保存加密密码是乱码
添加一个隐形的input框,提交隐藏input框里的数据,展示框展现的还是明文密码,并且不提交展示框的值 <formid"loginForm"class"form-signin newForm-signin"action"${ctx}/login"method"post"onsub…...
Python 如何操作数据库,让你使用 DeepSeek 开发数据库应用更加快 (Orm Bee)
Python 如何操作数据库,让你使用 DeepSeek 开发数据库应用更加快 操作数据库最好用 ORM 工具,可以提高开发效率. ORM 就是实体与数据库表的映射,让我们可以用面向对象的方式来操作数据库. 简单易用,直接上代码. 使用Orm Bee操作…...
如何解决 Linux 文件系统挂载失败的问题
以下是解决Linux文件系统挂载失败问题的系统性排查与解决方案: 一、设备基础检查 确认设备识别状态 执行 lsblk 或 fdisk -l 查看磁盘设备列表,验证目标设备(如 /dev/sdb1)是否被系统识别。 若设备未显示,需排查&a…...
JVM——引入
什么是JVM?它与JDK、JRE的关系? JVM、JRE 和 JDK 是 Java 平台的三个核心组件,各自承担着不同的职责,它们之间的关系密不可分。理解它们的区别和联系有助于更好地开发、部署和运行 Java 应用程序。对于 Java 开发者来说ÿ…...
Golang|工厂模式
工厂模式是一种创建型设计模式,它的核心思想是:把对象的创建过程封装起来,不直接在代码中 new 一个对象,而是通过一个“工厂”来生成对象。这样做的好处是: 降低了代码之间的耦合(依赖具体类减少࿰…...
Transformer数学推导——Q29 推导语音识别中流式注意力(Streaming Attention)的延迟约束优化
该问题归类到Transformer架构问题集——注意力机制——跨模态与多模态。请参考LLM数学推导——Transformer架构问题集。 在语音识别任务中,实时性是核心需求 —— 想象你使用语音助手时,每说完一个词就希望即时看到文字反馈,而不是等整句话说…...
dx11 龙书学习 第四章 dx11 准备工作
4.1 准备工作 Direct3D的初始化过程要求我们熟悉一些基本的Direct3D类型和基本绘图概念;本章第一节会向读者介绍些必要的基础知识。然后我们会详细讲解Direct3D初始化过程中的每一个必要步骤,并顺便介绍一下实时绘图应用程序必须使用的精确计时和时间测…...
运维打铁:域名详解及常见问题解决
文章目录 前言一、域名基础概念1. 什么是域名2. 域名结构3. 域名解析 二、域名工作原理1. DNS 服务器层次结构2. 域名解析过程 三、常见域名问题及解决办法1. 域名无法解析2. 域名解析延迟3. 域名解析结果不一致 四、总结 前言 在当今数字化的时代,互联网已经成为我…...
【大模型ChatGPT+R-Meta】AI赋能R-Meta分析核心技术:从热点挖掘到高级模型、助力高效科研与论文发表“
Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,现已广泛应用于农林生态,资源环境等方面,成为Science、Nature论文的…...
ElasticSearch深入解析(五):如何将一台电脑上的Elasticsearch服务迁移到另一台电脑上
文章目录 0.安装数据迁移工具1.导出数据2.导出mapping3.导出查询模板4.拷贝插件5.拷贝配置6.导入到目标电脑上 0.安装数据迁移工具 Elasticsearch dump是一个用于将Elasticsearch索引数据导出为JSON格式的工具。你可以使用Elasticsearch dump通过命令行或编程接口来导出数据。…...
QT中的多线程
Qt中的多线程和Linux中的线程本质是相同的,Qt中针对系统提供的线程API进行了重新封装 QThread类 Qt中的多线程一般通过QThread类实现,要想创建线程就要创建这个类的实例 QThread代表一个在应用程序中可以独立控制的线程,也可以和进程中的其…...