- 博客(38)
- 收藏
- 关注
原创 一些小问题总结(一)2021年1季度
1、有可能多个 Object的signal会连接到同一个slot函数上(例如多个Button的clicked信号可能会connect到一个slot函数onClick()),因此这是就 需要判断到底是哪个Object emit了这个signal,根据sender的不同来进行不同的处理.在槽函数中:加入操作不同Object。QObject * obj = sender(); //返回发出信号的对象,用QObject类型接收QPushButton *button_tmp = qobject_cas
2021-03-01 18:04:17
380
原创 Qt:QDom解析XML总结 Qt+XML界面设计(上)
拾枝杂谈最近也是一直在用Qt+XML+qss开发界面,所以总结一下这套前端的架构模式。主要的构成就是用xml写出界面需要用到的控件以及布局,利用Qt中的QDom类对xml进行解析,解析并获取xml中参数后,创建Qt相关的控件,并且在qss中设计出具体的控件样式。最后得到一套完整的Qt+XML+qss界面架构模型,在整个模型中,界面的绘制直接依靠xml去实现即可,少部分代码添加进解析程序中,复用性尚可。QDom简介QDom其实是Qt中一个很大的类,写一天可能也写不完,其中包含着QDomcument
2021-03-01 16:54:12
4406
原创 Qt QString用法总结
最近在生产中很多地方需要用到QString这个类,相当于C++中STL的String,两个用法相近;我下面会按照官方文档的说明,总结我遇到的有关QString的问题。QString简介在官方文档的翻译中,QString类提供了一种以Unicode编码的字符串。QString存储了一串16位的QChar,其中每个QChar对应到的是一个Unicode4.0的字符(Unicode编码值大于65536的值需要两个连续的QChar来存储(使用代理对存储))。这里我们可以把QString理解为stri
2021-02-26 10:57:35
3537
原创 c/c++ 绝对路径与相对路径
电脑硬盘C盘Program Files下,建新项目“test”,"test"下建立子文件夹“file”和头文件"data.h","file"下建新建文件“data.cpp”,电脑资源管理器显示目录 C:Program Files\test\file\data.cpp1. 相对路径 ,用正斜杠’/‘ 1.1向上一级目录指向 ./ 表示当前路径,相当于E:\test\file ../ 表示当前路径的上一级路径,相当于E:\test ../../ 表...
2021-02-25 14:05:03
8546
1
原创 AES加密算法 (上)介绍
AES简介AES(Advanced Encryptim Standard,AES),又称Rijndeal加密法,汉译为 高级加密标准。AES算法是由比利时密码学家Joan Daemen和Vincent Rijmen共同设计,AES算法起初用于替换原先的DES(Data Encryptim Standard,数据加密标准),并在21世纪初期成为最流行的加密算法之一。AES解决了之前大多数加密的问题,例如攻击加密标准,或者暴力破解密码等,在AES算法上的效果并不好。AES过程先放加密流程图。...
2021-01-20 21:13:37
4534
原创 随笔:进程与线程之间的区别
1、进程是资源分配的最小单位,线程是程序执行的最小单位。2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。3、线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式进行。4、多线程程序只要有一个线程死掉,整个进程也死掉了,而多进程程序更健壮,一
2020-07-25 10:33:42
198
原创 C++项目整理:爬虫模块设计
一、项目简介:爬虫是一个自动化的网络资源下载工具,可以分析网络上的资源如图片、文章持久化保存到本地。合作的项目可以爬取将读书网站上的信息。二、项目整体概述:爬虫爬取网页资源过程:每一个网页资源都有对其他网页的链接,有大量的出链以及入链,通过对网页的分析和下载,可以得到更多指向新网页的链接,从而完成下载的目的。完成一个爬虫需要有的步骤:1,准备一个网站地址。2,解析网站地址通过解析链接获取主机名,主机IP,端口号,资源文件名。3,完成本机与目标网站的网络链接。4,向目标网站请求
2020-07-25 10:10:14
717
原创 随笔:进程间以及线程间通信方式
进程间通信 管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用进程间的亲缘关系通常是指父子进程关系。 命名管道(named pipe/FIFO):命名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 信号量(semophonre):信号量是一个计数器,可以用来控制多个进程队共享资源的访问。它常作为一个锁机制,防止某进程在访问共享资源时,其他进程也访问此资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。 消息队列
2020-07-23 09:13:57
231
原创 Leetcode刷题每日总结 5、7、1312
5. 最长回文子串给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"想法:dp动态规划模板题。首先,考虑到单个字符是回文子串,将区间状态值设置为真,所以dp[i][i] 为 true,在遍历字符串中,我一头一尾遍历,在头尾字符相等的情况下,里面子串的回文性质据定了整个子串的回文性质,也就是说dp[i][...
2020-07-22 23:23:27
325
原创 C++项目整理:网盘项目
一、项目简介: 本次项目以网盘为题目,设计一个基于C/C++语言开发的网盘系统。由Vitual Studio打造的一个网盘系统项目,后台数据库使用MySQL数据库开发而成。结合网上诸多的云网盘软件为设计为基础,自己设计的网盘系统。该系统可以注册用户,已有的用户可以直接登录进入网盘主界面,上传文件以及下载已有文件或者删除,可以对文件的获取链接请求,并且分享文件以及链接。二、项目主体:1、数据库设计:我创建了网盘数据库,在该数据库中存在四个表用以存储数据:有文件表存储文件信息(file)...
2020-07-21 20:41:08
7635
5
原创 Leetcode刷题每日总结:2、3、124
2. 两数相加给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:加法模拟;拿到这两个链表,如示例所...
2020-07-19 20:09:08
237
原创 Android开发 : 音乐播放器的实现
一、前言: 第一次做安卓的个人项目,还是比较轻松的,将平时学的知识用到点子上就好容易,遇到自己想实现的而且还不会的就上网自己查,或者去官网的安卓开发者手册读老英文,这一块是最耗实践的,我在项目中在添加随机播放,加入歌曲时间,用什么数据结构存储歌曲信息等地方花了很大精力去学习,毕竟网上的东西查到10篇有3篇是符合的,就一篇详细而且有用的,所以遇到自己不会的时候效率还是蛮低的。二、功能介绍: 音乐播放器可以将手机SD卡中的音乐读取后加入到音乐播放器中,列出列表共听者欣赏,在音...
2020-05-16 06:02:35
3435
2
原创 C语言 数据结构与算法 KMP
1、KMP简介:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。字符串的模式匹配实质上就是寻找模式串P是否在主串T 中,且其出现的位置。我们对字符串匹配的效率的要求越来越高, 应不断地改良模式匹配算法,减少其时间复杂度。可以应用于网络信息查找、文本中字符串的索引等。2、KMP算法介绍:(以下为个人理解,不保证所有人都理解我的学习想法,如果看不懂next优化及创建过程的文章末尾有
2020-05-11 12:15:59
414
原创 C语言 排序算法总结(简单版)
排序算法复杂度表:种类 最优时间复杂度 平均时间复杂度 最差时间复杂度 空间复杂度 稳定性 冒泡排序 O(N) O(N²) O(N²) O(1) 稳定 选择排序 O(N) O(N²) O(N²) O(1) 不稳定 插入排序 O(N) O(N²) O(N²) O(1) ...
2020-05-03 19:44:17
423
原创 C语言 数据结构 二叉排序树(BST)
1、二叉排序树简介:二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),也称二叉搜索树。树中的任意节点上的左子树都比父节点小,右子树都比父节点大的,且所有值都唯一的树叫二叉排序树。2、二叉排序树的查找:如果当前节点的键值等于待查询的数值,则找到;若前节点的键值小于待查询的数值,由二叉树的定义可知,大的数值在右子树,则递归查找该节点...
2020-05-03 18:07:35
1194
1
原创 C语言 数据结构 树、二叉树
1、二叉树简介:二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。相关知识:树的深度:树中最大的结点层。结点的度:结点子树的个数。树的度: 树中最大的结点度。叶子结点:也叫终端结点,是度为 0 的结点;分枝结点:度不为0的结点;满二叉树:除了叶子节点外,为一个节点都有左右子树的二叉树,...
2020-05-03 16:34:17
533
原创 C语言 数据结构 队列
1、队列简介:队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。2、队列的声名:和栈不同,我将链表中的每个元素添加上头指针与尾指针(还有一个计数器,判空时可以直接拿来用)将其变成一个队列。这样在入队与出队的操作就与链表大同小异了。typedef struct quee{ ...
2020-05-03 01:47:09
341
原创 C语言 数据结构 栈
1、栈:先进后出(FILO)的数据结构,先进去的数据在底部,最后取出,后进去的数据在顶部,最先被取出。2、栈的声名:像链表一样有数据值也有指针域。typedef struct node{ int val; struct node *pnext;}stack;3、进栈:没啥好解释的一次进一个,注意函数中要用到二级指针。void s_push(stack **p...
2020-05-03 01:34:32
292
原创 C语言 数据结构 链表及其相关操作
1、链表:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,查找一个节点或者访问特定编号的节点则需要O(n)的时间...
2020-05-03 01:03:34
381
原创 C语言 运算符优先级表
运算符 ·结合性 () [] -> .(前述运算符) 自左向右 ! ~ ++ -- - (type) * & sizeof (单目运算符) 自右向左 * / % + - (算术运算符) 自左向右 << ...
2020-04-13 20:20:16
555
原创 Linux Ubuntu虚拟机 实验分析
实践项目名称: Linux内核分析 一、实践目的1. 在Ubuntu系统条件下,学会使用虚拟机安装Ubuntu操作系统2. 掌握组创建、用户创建,并授权。3. 学会配置C语言编程环境,完成C程序运行。4. 学会使用fork()系统调用进行进程创建,查看创建的进程。5. 学习创建如下的进程关系,并解释创建过程。二、实践内容1....
2019-07-04 22:37:16
1502
原创 C语言 基础指针简介
一、指针所谓指针,就是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。这里介绍一小部分;首先,介绍声名指针变量:int p; //一个整形数p;int *p; //一个指针p;int p[50]; //一个数组p,其中的所有数据均为int;int *p[50]; //一个数组p,其中的数据类型均是指针; 这里要注意:int p;是定...
2018-07-28 09:47:03
284
原创 离散数学 Warshall算法求传递闭包 C语言实现
求传递闭包有一种有效算法—Warshall算法,这种算法也便于计算机实现。 (1)置新矩阵A=M; (2)i=1; (3)对所有j如果A[j,i]=1,则对k=1,2,…,n,A[j,k]=A[j,k]∨A[i,k](这里的加是布尔加); (4)i加1;(i是行,j是列) (5)如果i≤n,则转到步骤3),否则停止。 例如:一个的矩阵M: 第一步:当i=1时;找到M[j...
2018-07-25 21:15:41
6977
原创 Java 接口的使用
Description先定义一个接口IGetArea,有一个方法computeArea,有一个常量PI为3.14。 然后定义一个实现该接口的Circle类,有double类型的半径属性。 再定义一个实现该接口的Rectangle类,有double类型的长和宽属性。 要求Main方法中至少包含如下代码(这些语句不要求必须放在一起): IGetArea iga; iga=new Circ...
2018-05-12 10:24:35
379
原创 Java 抽象类
Description先定义一个抽象Graphic类,有求面积的computeArea抽象方法(返回值为面积,圆周率取3.14);然后定义一个从Graphic派生的Circle类,有double类型的半径,以及重写的computeArea抽象方法。再定义一个从Graphic派生的Rectangle类,有double类型的长和宽属性,以及重写的computeArea抽象方法。
2018-04-27 23:23:40
367
原创 Java 派生类
Description先定义一个圆类Circle,有double类型的半径属性,有带参数的构造函数和求面积的computeArea方法(为保护型的,返回值为面积,圆周率取3.14);然后定义一个从Circle派生的圆柱类Cylinder,增加double类型的高属性,有带参数的构造函数以及一个计算圆柱体积的成员函数,此函数中要用到从父类继承来的求面积方法。实现并测试这个类,在m
2018-04-27 23:15:35
6847
1
原创 JAVA 矩阵类
Description设计一个矩阵类,类中的方法能够对矩阵进行加法、减法和乘法运算,定义矩阵类对象,然后根据输入进行计算,并输出结果。Input输入不定组数的多组数据,每组由运算字符串("ADD"表示矩阵相加,"SUB"表示相减,"MUL"表示相乘)和用于确定矩阵的行数、列数的两个或三个整数(对于加法和减法,是两个整数,表示矩阵的行数和列
2018-04-19 23:13:35
4470
原创 JAVA 分数类
Description设计一个分数类,分数的分子和分母用两个整型数表示,类中定义方法能够对分数进行加法、减法、乘法和除法运算。定义分数类的对象,进行运算并输出结果。Input输入不定组数的多组数据,每组一行,一行中第一个数据是字符串,"ADD"表示分数相加,"SUB"表示相减,"MUL"表示相乘,"DIV"表示相除。 然后是第一个分数的分子、分母,然
2018-04-19 23:07:34
3050
原创 hrbust 1073 病毒 并查集
病毒Time Limit: 1000 MS Memory Limit: 65536 KB64-bit integer IO format: %lld , %llu Java class name: Main[Submit] [Status] [Discuss]Description某种病毒袭击了某地区,该地区有N(1≤N≤50000)人,分别编号
2018-04-09 19:24:28
252
原创 K题 单词的统计
K - MaratonIME goes to the karaoke ♬ Hit me, lock me up, do anything with me, ... ♬and Marrone, BrunoAfter thousands of years repeating the title of this problem statement, always with an excite
2018-03-24 10:08:56
359
原创 JAVA :最小公倍数与最大公约数
import java.util.*;public class gcd{public static void main(String args[]) {int a,b;Scanner cin = new Scanner(System.in);while(cin.hasNext()){ //输入多组数据a
2018-03-21 16:08:29
302
原创 hrbustoj 1708 许可证 图论
许可证Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 417(136 users)Total Accepted: 158(115 users)Rating: Special Judge: NoDescriptionmac最近
2018-03-20 22:34:20
240
原创 HDU 1496 Equation 哈希
EquationsTime Limit: 3000 MS Memory Limit: 32768 KB64-bit integer IO format: %I64d , %I64u Java class name: Main[Submit] [Status] [Discuss]DescriptionConsider equations having
2018-03-14 15:55:49
431
原创 hrbust 1179 基础dfs
下面的矩阵可以想象成鸟瞰一座山,矩阵内的数据可以想象成山的高度。可以从任意一点开始下山。每一步的都可以朝“上下左右”4个方向行走,前提是下一步所在的点比当前所在点的数值小。例如处在18这个点上,可以向上、向左移动,而不能向右、向下移动。 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10
2018-03-08 15:32:41
393
转载 c++ 中map的用法
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数; mapmapstring; mapmapint; mapmapstring; mapmapchar; mapmapchar; mapmapint
2018-01-31 09:57:44
225
原创 排序方法:插入法排序
插入法排序:顾名思义就是把后面的数插入到前面已有的有序数列中在进行排序举个列子: 把 7 3 6 9 1 从小到大进行插入法排序;第一次:先将第一个数排好序,显然已经排好了 7 3 6 9 1第二次:再把3插入,将其与7比较 显然:3 7 6 9 1 下一次:以此类推:将6, 9 ,1依次放入到已排好的序列中3 6 7 9 13 6 7 9 11 3 6 7
2018-01-30 09:19:07
918
原创 判断回文
首先,回文就是一句话中的所有字关于中心对称,也就是说第一个字符和最后一个字符一样,第二个字符与倒数第二个字符一样,以此类推,比如:“上海自来水来自海上”。在编程中实现:其核心是将头一个与末尾一个做对比,是的话将头++,尾--,比较下一对;#include#includeint main(){ char a[1000]; int n,i,Head,End;
2018-01-30 08:41:08
440
原创 C/C++ 简单链表1
下面是链表的最简单的操作初学者一定要多练习#include#includeusing namespace std;int n;struct student{ int num; char name[30]; int age; student *next;};/* 链表创建函数 */student *creat
2017-12-03 11:03:27
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人