自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 QT界面效果速查

QT界面效果速查

2023-01-26 13:25:17 206

原创 qml用基础控件自定义柱状图

支持图例数量变化,标签数量变化,值为0时不显示。

2024-01-17 18:29:01 514

原创 MYSQL全语法速查(含示例)

mysql语法速查

2023-12-06 23:03:22 422

原创 QML自定义电池状进度条

百分比显示保留两位小数,通过iValue的数值来显示当前进度,注意为了保留小数总值取的是10000,所以你的iValue值也要乘上100。iModel:表示进度小方块的数量,该控件的长度与此有关,无需再次设置。iValue:当前进度,为整数(记得放大100倍)cContentColor:表示进度的小方块颜色。cTextColor:显示进度百分比的文字颜色。cBorderColor:进度条外框的颜色。

2023-10-24 21:28:38 274

原创 手写SVG图片

这个意思其实是确定一些点,让系统沿着这些点画线(L指画线),这段的意思是沿着(0,2)、(2,0)、(17,15)、(32,0)、(34,2)、(19,17)、(34,32)、(32,34)、(17,19)、(2,34)、(0,32)、(15,17)这些点,用颜色黑色fill="#000000来填充闭合的路径,因为这个"X"是有宽度的,所以描点的时候要注意把宽度考虑进去.这里只是展示了最简单的画线,还有很多其他的绘制读者可以自行去了解.新建文本文档,将以下代码复制进去,修改后缀名为.svg,保存。

2023-10-23 20:00:08 417

原创 QWidget快速美化-蓝色分割线

将代码复制进Line的样式表。

2023-10-23 19:46:02 269

原创 QWidget快速美化-蓝边白字下拉框

将代码复制进QComboBox的样式表。

2023-10-23 19:44:19 121

原创 QWidget快速美化-文本浏览器

将代码复制进QTextBrowser的样式表。

2023-10-23 19:41:09 113

原创 QWidget快速美化-圆角白色输入框

将代码复制进QLineEdit的样式表。

2023-10-23 19:37:20 202

原创 QWidget快速美化-圆形蓝色单选框

将代码复制进QRadioButton的样式表。

2023-10-23 19:34:42 197

原创 QWidget快速美化-蓝色边框圆角按钮

将代码复制进QPushButton的样式表。

2023-10-23 19:32:59 241

原创 QML自定义可长按短按的SpinBox

自定义组件

2023-10-17 21:37:28 447

原创 QTableWidget表格中表示开关状态

在表格中放置QWidget控件,再在QWidget里绘制圆形,需要快速实现一个自定义的QWidget.

2023-03-22 12:00:00 228

原创 qt中延迟调用函数(可用于多线程)

可用于多线程的延迟调用函数

2023-03-10 21:58:03 720

原创 QTableWidget表格使用及美化

QTableWidget表格使用及美化

2023-01-26 16:47:44 2370

原创 QT窗口自定义最小化和关闭按钮

自定义最小化和关闭按钮

2023-01-26 14:59:10 2544

原创 QT窗口实现无边框

QT窗口无边框,显示任务栏

2023-01-26 13:21:23 1629

原创 位运算的奇技淫巧-位运算分治

对一个32 位无符号整数,如何颠倒它的二进制位?一个朴素的办法是,从低位到高位,逐位使其二进制数就位。uint32_t reserveBits(uint32_t n) { uint32_t ret = 0; for (int i = 0; i < 32; i++) { ret |= ((n >> i) & 1) << (31 - i); } return ret;}对第i位,使用(n >> i) &

2021-05-30 09:34:56 753 2

原创 由Topk到STL源码(快排优化)

一切从一个力扣题开始:最小的k个数TopK:输入整数数组 arr ,找出其中最小的 k个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。看到有人说STL提供了算法可以解决这个题,自己实现了一下,于是有了这两种解法。秒杀法调用STL提供的nth_element方法,该方法让第 n 个位置上的元素就位,且所有在位置 n 之前的元素都小于或等于它,所有在位置 n 之后的元素都大于或等于它。class Solution {public: vector

2021-04-14 15:21:06 241

原创 深信服一面面经

深信服一面-C++开发工程师 云计算/网络安全方向-校招(大概半小时不到)数据结构:多态是怎么实现的?继承和重载有什么关系?数组和链表有什么区别?数组里找第k个最大的数有什么方法?(堆排序,没想出来,只说了一个排序,平均最快nlogn)堆排序是怎么排序的?(承接上面的问题,给我提示,但是我完全没意识到)二叉排序树为什么要平衡?new和malloc的区别?fock函数在调用时进行了哪些工作?快速排序是怎么排的,有序和无序的情况哪个速度慢(有序),为什么?(不知道…)那怎么优化呢?(先遍历

2021-03-31 12:50:13 284 1

原创 字节跳动一面面经

字节跳动一面-游戏研发工程师-校招(用时一小时):数据结构:讲一下虚函数。构造函数和析构函数是否可以用虚函数?为什么?虚函数表在继承中如何是作用的?具体讲一下菱形继承是怎么继承的。用过哪些STL容器?讲一下vector和set的区别。讲一下右值引用。用过vector的emplace_back吗?讲一下完美转发。完美转发是如何实现的?智能指针用过吗?有哪些智能指针?讲一下weak_ptr。shared_ptr是怎么实现共享的(说的引用计数用静态数据成员),不对,再想想(没想出来)。操作系

2021-03-30 19:24:44 471

原创 读那些大牛的代码我们能得到什么?

读那些大牛的代码我们能得到什么?之前在学STL的map容器,map容器的底层实现就是变种红黑树.有些好奇标准库是怎么写的,就去追根溯源了一下,然后找到了map和xtree里面,开始就看到了一个很奇怪的代码:// map standard header#pragma once#ifndef _MAP_#define _MAP_#ifndef RC_INVOKED#include &l...

2020-03-29 17:31:14 242

原创 C++异常

C++异常异常无处不在!尽管程序是你设计的,但是却不一定按你的设想运行.面对随时有可能出现的异常情况(俗称程序跑飞了),你该如何应对?C++提出了异常机制.什么是异常?异常是一种程序控制机制,与函数机制互补.函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它可以在出现"意外"时中断当前函数,并以某种机制(类型匹配)回馈给隔代的调用者相关的信息.在我以前的文章里...

2020-03-27 16:00:57 276

原创 原型模式

原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.理解在你新创建一个实例时需要消耗较多的资源,并且希望保存已经存在的实例的状态,这时可使用原型模式.被复制的原型类需要实现拷贝构造函数,常常和工厂模式搭配使用.和单例模式相冲突.优点可以不再进行重复的操作以保证新的实例与已经存在的实例有相同的状态.缺点逃脱了构造函数的限制,这使得即使构造函...

2020-03-26 17:03:08 136

原创 享元模式

享元模式(Flyweight)运用共享技术有效地支持大量细粒度的对象.优点大大减少对象的创建,避免了大量重复的对象的出现,减轻系统的内存负担,使效率提高.缺点需要考虑外部状态和内部状态的划分,否则将使得线程不安全.理解这里将会用到"池"的概念,创建对象之前将会搜索池,如果不存在可用对象,则会创建新对象并将其加入"池",否则将会使用已经存在的对象,此时新的对象事实上可以看成已经存在...

2020-03-25 13:23:19 124

原创 观察者模式

观察者模式(Observer)当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.理解如同在动物园看动物,当动物的行为、状态发生改变时,所有的游客(观察者)都自动收到信息.常用于通知类型的设计.优点观察者和被观察者是抽象耦合的,依赖关系被弱化.缺点在规模庞大时,让所有观察者接收到更新通知将会花费很长的时间.实现在用户使用软件,软件公司发布了软件的一个新版本,...

2020-03-24 20:08:15 134

原创 工厂模式

工厂模式(Factory)定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行.优点只要知道名称就可创建对象,可拓展性好.缺点在实现类并不复杂时,使用该模式会造成代码冗余.抽象类图理解实例化这个操作,不应该公开的进行,用new直接创建的方式就是针对实现编程,违背了设计模式原则中的依赖倒转原则.并且很多时候,创建一个类所做的初始化工作不...

2020-02-20 15:31:10 102

原创 虚函数表与继承再到多态

虚函数表虚函数表是一块连续的内存,每个内存单元中记录一个JMP指令的地址.类中虚函数的存储借助虚函数表,请看代码.#include <iostream>using namespace std;class Father {public: virtual void function1() { cout << "调用了Father的方法1" << ...

2020-02-04 23:33:42 178

原创 策略模式

策略模式(Strategy)定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.理解这里策略与我们平时的意思一致,即可以实现目标的方案集合,在众多方法中选择一种使用.常用于替代if-else,但并非所有情况下都可替代.优点可拓展性良好.策略(Strategy)在运行时装载代码,从而解决了有时候支持不使用的方法也是一种性能负担的问题.缺点策略类都需要将方法置为public...

2020-01-16 17:07:50 124

原创 模板模式

模板模式(Template)定义一个操作中的算法的骨架,并将一些步骤延迟到子类中,这使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.理解如同我们日常生活中"模板"的意思,做一个标准化的流程,其中一些地方留空,后来者可以根据自己的需要填空.就像试卷,答题的格式已经固定了,你所要做的就是在其中挖空的地方填空,并且每个人填的内容可能都会不一样.优点不变部分被封装,使得可变部...

2020-01-16 16:46:02 145

原创 友元、运算符重载

友元友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend类的三种访问权限从:大家均可访问(public)到仅子类可访问(protected)到类外均不可访问(private).这三种访问范围其实是有漏洞的,并没有考虑到一种情况,比如我现在让类内的数据部分公开,即部分函数/类可用,这时类的三种访问权限任何一种都无法满...

2020-01-13 19:01:50 477

原创 C++中对文件的操作

对文件的操作学C的时候我们就接触过如何读写文件,C++中存在C++风格的文件读写,同时也支持C风格的读写文件.这是IO类库的基本结构,箭头表示该类从何处继承.文件的打开模式标记代表了文件的使用方式,这些标记可以单独使用,也可以组合使用,组合使用时,用|将其连接模式标记适用对象作用ios::inifstream、fstream打开文件用于读取数据。如果文件不存在,...

2019-12-21 11:56:05 570

原创 优先队列实现哈夫曼树

哈夫曼树给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。哈夫曼树的建立过程:这里使用STL容器适配器priority_queue实现哈夫曼树.结构体定义提示:能存储字符有字符的频率(优先级)有左子结点和右子结点t...

2019-11-11 19:28:10 3443

原创 二叉搜索树

二叉搜索树二叉搜索树一般用于查找,查找思路类似于二分查找,平均每次能排除一半的结点,所以它的平均效率为二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树...

2019-11-05 21:51:38 230

原创

栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。顺序栈顺序栈是用数组实现的栈,结构体定义提示:应有栈顶和栈底...

2019-10-30 10:40:41 145

原创 堆实现优先队列

堆实现为什么要使用堆实现优先队列?在前面讲了用链队实现优先队列,其思想是插入元素时按普通队列入队,在删除元素(出队)时按优先队列的性质删除.那么就还有一种方式,即插入元素时按优先队列的方式插入,删除时按普通顺序队列的方式删除.那就是用堆实现优先队列!由于前面已经写过堆的实现,这里不再重复造轮子,读者可以自己改写实现优先队列,我们使用容器适配器.堆的实现首先我们需要一个容器,vector容器...

2019-10-26 22:20:16 730

原创

堆堆(heap)是计算机科学中一类特殊的数据结构的统称.堆通常是一个可以被看做一棵树的数组对象.堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值.堆总是一棵完全二叉树.根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆.这里我们以最大堆为例来讲堆.堆的实质就是树,不过它有些特殊,它是用数组存放的树!堆的父结点和其左右子结点有何关系?如果父结点为i,...

2019-10-25 10:12:47 136

原创 循环队列

为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。逻辑结构如下:存储结构如下:结构体定义提示:应有数据域有队头和队尾指针typedef struct { int data...

2019-10-17 14:21:01 226

原创 任务队列

结构体定义typedef struct TQNode { int id; void (*handle)(void); TQNode *next;}TQNode;typedef struct { TQNode *front; TQNode *rear;}Queue;初始化bool initQueue(Queue* &q) { q = new Queue; if ...

2019-10-17 12:50:26 2274

原创 链队实现优先队列

首先,什么是优先队列?普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征.简单来说,每次出队,优先级最高的先出,如果优先级相同,按普通队列方式(先进先出)出队.结构体定义提示:应有存放优先级的变量(本文中,数...

2019-10-10 12:45:05 513

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除