自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (3)
  • 收藏
  • 关注

原创 剑指offer刷题笔记(C++版本)

目录一、位运算1、二进制中1的个数二、数组1、数组中重复的数字2、二维数组的查找3、数字在排序数组中出现的次数4、旋转数组的最小数字5、调整数组顺序使奇数位于偶数前面6、顺指针打印矩阵7、数组中出现次数超过一半的数字8、连续子数组的最大和9、数组中的逆数对10、数组中只出现过一次的数字11、把数组排成最小的数12、构建乘积数组三、链表1、从尾到头打印链表2、链表中倒数第K个节点3、反转链表4、合并两个排序链表5、两个链表的第

2021-11-17 16:35:53 784 2

原创 十大经典排序算法

稳定排序:冒泡排序、插入排序、归并排序非稳定排序:选择排序、希尔排序、堆排序、快速排序1、冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调,比较是相邻的两个元素比较,交换也发生在这两个元素之间。(类似于气泡上浮过程)动图如下:步骤:1、比较相邻的元素,如果第一个比第二个大,则交换2、对每对相邻元素重复步骤1操作,筛选出最大元素3、针对所有元素重复步骤1、2(除最后一个元素,已经是最大)示例代码:void bubbleSort(std::vec..

2021-10-21 11:40:12 30988 21

原创 QML定位、布局、输入元素

定位、布局、输入元素以及转换组件(Compontents)一个可以重复使用的元素,QML可以自定义元素组件。本文主要介绍以单独文件创建组件。定义一个ClickableImage.qml供下文使用。ClickableImage.qml实现:import QtQuick 2.0Image { id: root signal clicked MouseArea { anchors.fill: parent onClicked: root.

2021-07-08 10:42:54 552

原创 设计模式(C++版本)

面向对象设计原则详见:https://blog.csdn.net/qqzhaojianbiao/article/details/115468332单例模式详见:https://blog.csdn.net/qqzhaojianbiao/article/details/116119794简单工厂模式详见:https://blog.csdn.net/qqzhaojianbiao/article/details/116131902工厂方法模式详见:https://blog.csdn.net/qqzha

2021-06-18 14:48:36 199

原创 C++14/17新特性

C++14:auto优化函数返回值可以为auto类型 auto func(int index) { return index; }lambda参数可以为autoauto f = [] (auto a) { return a; };std::make_uniqueC++11中对智能指针只有std::make_shared,C++14中添加std::make_unique。示例:class Test {};std::unique_ptr<Test > ptr =

2021-06-16 17:21:57 523

原创 c++11新特性

default和deletedefault:在C++中,声明自定义的类型之后,编译器会默认生成一些成员函数,这些函数被称为默认函数,我们使用default可以显示的让编译器去生成该函数的默认版本delete:弃置函数,函数后添加“=delete”之后,此函数将不允许被调用示例: class Test { public: Test() = default;//默认构造函数 Test& operator=(const Test&) = delete; Tes.

2021-06-16 13:47:27 275 3

原创 VLC使用

本文主要介绍windows下vlc使用:1、vlc下载通过https://download.videolan.org/pub/videolan/vlc/链接进行下载dll库主要使用以下文件2、测试代码头文件#ifndef MYPLAYER_H#define MYPLAYER_H#include <QObject>#include"vlc/vlc.h"class MyPlayer:public QObject{ Q_OBJECTpublic: e

2021-06-07 17:15:47 1056

原创 windows下Qt程序打包

1、使用windeployqt拷贝依赖文件先将生成的exe、自己编写的dll以及图片资源拷贝到Test目录下然后在cmd中,进入Test目录:cd /d C:\Test执行拷贝依赖命令windeployqt webEngine.exe拷贝中:拷贝后文件夹内:2、使用inno setup进行打包inno setup可以通过图形化打包,也可以编写脚本实现,本文主要讲述图形化操作:首先下载inno setup安装包(网上资源很多,不多说)打开inno setup进行打包

2021-06-07 16:06:44 228

原创 QWebengineView和js交互

QWebengineView和js交互QWebengineView和html交互QWebengineView和js通信Qt和js通信Qt和js交互

2021-05-25 15:01:23 3217 6

原创 C++11线程相关知识点大全

C++11多线程开发知识点总结1)线程基本操作创建线程:std::thread myObj(入口函数); //创建线程就开始运行获取线程ID:get_id检查线程是否可被 join:joinable线程执行顺序:join 阻塞线程 detach 分离线程切换线程:swap2)锁mutex分类:std::mutex 最基本的mutex类std::recursive_mutex 递归mutex类std::time_mutex 定时mutex类(try_lock_for阻塞一段时间等待锁

2021-03-30 11:32:21 299

原创 KWin事件总结和相关类介绍

目录KWin事件总结和相关类介绍1、事件相关模块1.1 事件类型1.2 事件管理1.3 事件过滤器2、KWin其他模块整理2.1 窗口2.2 Item2.3 scene3、事件传递流程3.1 事件整体流程3.2 事件传递时序图4、事件流程样例4.1 鼠标拖动修改窗口大小4.2 鼠标样式修改。

2023-05-29 16:59:23 1447

转载 Wayland中跨进程调用过程

Wayland跨进程调用

2023-03-27 17:11:34 1249

转载 Wayland窗口系统

Wayland窗口

2023-03-27 10:53:37 2073

转载 Weston中shm window渲染

Weston中shm window渲染

2023-03-27 10:30:40 1105

原创 Window11启动自带虚拟机

window11开启自带虚拟机功能

2023-03-23 17:51:05 1451 2

转载 Weston中Panel渲染

Weston中panel渲染流程

2023-03-23 17:21:30 374

转载 Weston介绍

Weston学习

2023-03-23 17:05:18 1615

原创 二叉搜索树(BST)合集

目录一、BST定义和性质二、二叉搜索树中第K小的元素三、把二叉搜索树转换为累加树四、合法二叉搜索树五、二叉搜索树中的搜索六、二叉搜索树中的插入操作七、在 BST 中删除一个数八、不同的二叉搜索树九、不同的二叉搜索树 II一、BST定义和性质定义:BST是一棵空树,或者具有以下性质的二叉树:性质:若它的左子树不空,则左子树的所有节点值都小于根节点的值 若它的右子树不空,则右子树的所有节点值都大于根节点的值 左子树和右子树都是二叉搜索树备注:BST中序.

2021-12-10 16:53:11 932

原创 一文搞懂背包问题

目录一、背包定义二、背包分类三、背包解题模板1、分类解题模板2、背包分类模板3、问题分类模板四、背包相关例题1、经典0-1背包2、分割等和子集3、零钱兑换 II4、零钱兑换5、最后一块石头的重量 II6、目标和7、完全平方数8、组合总和 Ⅳ9、掷骰子的N种方法一、背包定义背包定义:给定一个背包重量target,再给定一个数组nums(物品),按照一定方式选取nums中物品,得到target。备注:nums中物品可能是数,也可能是

2021-12-10 13:43:02 812

原创 常用算法框架

1、数据结构的存储方式底层只有两种:数组(顺序存储)和链表(链式存储)二者区别:数组:连续存储,可以随机访问,通过索引可以快速找到对应元素,而且相对节约存储时间。正因为连续存储,必须一次性分配内存空间,扩容需要重新分配更大空间,把数据复制过去,从中间插入和删除必须移动后面的数据链表:元素不连续,靠指针指向下一个元素位置。知道某一个节点的前驱和后驱就可以对该指针删除或者插入新元素。由于不连续,无法通过索引找到对应元素,不能随机访问,每个元素保存前后元素位置的指针,增加存储空间2、数据结构的基本

2021-11-10 19:08:38 3732

原创 面试经典题——计算机网络

1、三次握手和四次挥手过程三次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。 Client收到确认后,检查ack是否为J+1,ACK是否.

2021-11-03 14:58:19 368

原创 面试经典题——操作系统

1、进程和线程概念进程:资源分配和拥有的基本单位 线程:程序执行的基本单位2、进程和线程区别线程启动速度快,轻量级 线程的系统开销小,进程需要创建、撤销时,系统都要分配和挥手资源,开销较大 线程使用有一定难度,需要处理数据一致性问题 同一线程共享的有堆、全局变量、静态变量、指针,引用、文件等,而独自占有栈3、进程间通信方式 管道: 无名管道(内存文件):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程之间使用。进程的亲缘关系通常是指父子进程关系。

2021-11-02 15:17:53 332

原创 面试经典题——数据库

1、数据库索引索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息 索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构2、数据库事务数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都

2021-11-01 19:37:29 550

原创 用 Rand7() 实现 Rand10()

题目:已有方法rand7可生成 1 到 7 范围内的均匀随机整数,试写一个方法rand10生成 1 到 10 范围内的均匀随机整数。不要使用系统的Math.random()方法。示例1:输入: 1输出: [7]示例 2:输入: 2输出: [8,4]示例 3:输入: 3输出: [8,1,10]提示:rand7已定义。传入参数:n表示rand10的调用次数。LeetCode链接:https://leetcode-cn.com/probl...

2021-10-27 10:19:48 3124

原创 重排链表

题目:给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0→ L1→ … → Ln-1→ Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→ …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入: head = [1,2,3,4]输出: [1,4,2,3]示例 2:输入: head = [1,2,3,4,5]输出: [1,5,2,4,3]LeetCode;链接:https...

2021-10-26 19:32:45 494

原创 图解奇偶链表

题目:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。输入:1->2->3->4->5->6->7输出:1->3->5->7->2->4->6LeetCode链接:https://leetcode-cn.com/p

2021-10-26 15:23:19 463

原创 LRU缓存

题目:设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之

2021-10-25 17:44:15 343

原创 单链表反转(四种方式实现)

题目:输入一个单链表,反转该链表并输出输入:1->2->3->4->5输出:5->4->3->2->1代码示例://就地反转ListNode * reverse1(ListNode *node){ if (node == nullptr) { return node; } ListNode *head = new ListNode(-1); head->next =

2021-10-22 16:53:53 1320

原创 百度云OCR文字识别

最近项目调研,要是用百度智能云的ocr文字识别功能,虽然说官方文档和demo都很详细,但是在实际操作的过程中,还是遇到很多问题,那就记录一下吧~ 1)注册 首先要在百度智能云上进行注册,注册后进行应用创建。 注册后效果: 2)创建应用 我个人创建的应用如下: 3)获取Access Token 官方说明:https://ai.baidu.c...

2021-08-31 16:01:17 2645

原创 视频编码格式——h264优点

低码率(Low Bit Rate):在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3 高质量的图像:H.264能提供连续、流畅的高质量图像 容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具 网络适应性强:H.264提供了网络抽象层(Network Abstraction Layer),使得H.264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等)。 高压缩率,H.264的压缩比

2021-08-11 13:54:46 1148

原创 QML基本元素介绍

目录基本元素 基础二元素对象(Item Element)矩形框元素(Rectangle Element)基本元素 qml中元素可以分为可视化元素和非可视化元素。可视化元素(例如Rectangle)有着几何形状,并且可以显示在屏幕上。非可视化元素(例如Timer)提供了常用功能,通常用于操作可视化元素。本文主要介绍一下集中基础的可视化元素:Item(基础元素对象)、Rectangle(矩形框)、Text(文本)、Image(图像)...

2021-07-05 17:23:25 673

原创 Qt实现二维码

今天主要讲述通过qrencode生成二维码。qrencode是开源的二维码QR码编码库,主要C语言编写的,这样方便移植到各种平台下。qrencode特点如图所示下载qrencode源码如下:代码实现:QImage TcQrencode::encodeImage(const QString& s, int bulk){ QImage ret; QRcode* qr = QRcode_encodeString(s.toUtf8(), 1, Q...

2021-07-05 14:18:41 1090

原创 增加网页访问量

今天在网上看文章,好多刷新网页的脚本,自己就用Qt的QWebengineView实现了一个:1)UrlConfig.ini文件Time:刷新超时时间ListUrl:URL地址,以逗号隔开BaseUrl:如果刷新网页URL前缀一样,此处填前缀,ListUrl只需要填Url不同部分refreshNum:总刷新次数2)代码分析:a.包含四个按钮(开始、停止、清除、退出软件),TestBrowser显示操作,WebEngineView加载界面b.读取配置文件信息c.定时器超时,设置index值看

2021-06-23 19:27:37 554

原创 Qt多线程实现方法

Qt提供了三种实现多线程的方式:1)继承QThread,重写run方法代码如下:MyThread::MyThread(QObject *parent) :QThread(parent){}void MyThread::run(){ QTimer *timer = new QTimer(); connect(timer,&QTimer::timeout,this,[](){ qDebug() << "TMyThreadID:::" &lt

2021-06-22 17:40:57 1779

原创 Qt对数据库操作

QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。QSqlDatabase创建连接数据库实例,一个QSqlDatabase的实例代表一个数据库的连接。QSqlQuery进行执行数据库语句。Qt 提供了对不同数据库的驱动支持:Driver TypeDescriptionQDB2IBM DB2QIBASEBorland InterBase DriverQMYSQLMySQL Dr

2021-06-22 11:31:53 2449

原创 Qt事件处理流程详解

本文主要对Qt的一些事件处理,做一个介绍:事件流程图:1、事件产生1)QApplication::postEvent():调用 QApplication::postEvent(),将其放入Qt的消息队列中,依次等待被处理;postEvent()中事件对象的生命周期由Qt平台管理,只支持分配在堆上的事件对象,事件被处理后由Qt平台销毁。这种方式是异步处理事件,Qt的事件循环是异步的,当调用QApplication::exec()时,就进入了事件循环,先处理Qt事件队列中的事件, 直至为空,再处理系统消

2021-06-21 18:02:48 1887

原创 面试经典题 —— 基础篇

指针和引用的区别1)指针是一个变量,存储的是一个地址,引用原变量的别名2)指针可以有多级,引用只有一级3)指针可以为空,引用不能为空且在定义时必须初始化4)指针在初始化后可以改变指向,而引用在初始化之后不可再改变5)引用只是别名,不占用具体存储空间,只有声明没有定义;指针是具体变量,需要占用存储空间C/C++程序的内存分区1)栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等2)堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收3

2021-06-18 14:50:20 267

原创 qml模糊动画、按键事件、鼠标事件

本文主要是通过一个demo进行一个讲解,demo主要实现左右按键、鼠标点击可以使风车模糊转动:模糊动画:layer.effect: FastBlur { id: blur1 //id radius: root.blurRadius //模糊区域 Behavior on radius {//触发行为 NumberAnimation { duration: 125/

2021-06-16 15:45:59 336

原创 qml加载方式以及区别

qml加载方式包含三种,下面详细介绍每种方式以及区别:QQuickWidget继承于QWidget,可以直接添加到Qt的布局当中,因涉及渲染到render到OpenGL帧缓冲区对象,会带来性能损失,性能稍低;禁用所有平台上的线程render loop,例如Animator类和vsync驱动的动画不能使用;避免在QQuickWidget上调用winId(),这个函数会触发本机窗口的创建,导致性能降低,并可能出现渲染问题QQuickView继承自QQuickWindow(继承自QWindow),通过转

2021-06-15 19:38:24 796 2

原创 qml项目创建

创建qml项目的两种方式:1、创建方式一–– 与C++的交互进行创建(QT Quick Application - Empty)创建项目以上几种都可以,区别在于会自带一些样式。添加项目名称选择bulid systemQt版本选择编译器2、创建方式二 – 使用QML的方式进行创建(QT Quick UI Prototype)创建项目项目名称Qt版本项目目录这里我们发现,出现了一个.qmlproject的qml工程文件,就如同QT界面

2021-06-15 18:02:01 1152 1

qmlTest.zip

qml文件的不同加载不上、qml中动画、键盘事件、鼠标事件

2021-06-15

qmlKeyTest.zip

使用QT Quick UI Prototype创建项目,简单介绍动画、旋转、键盘事件、鼠标事件

2021-06-15

QWebEngineView通信.zip

QWebEngineView和前端交互

2021-05-25

空空如也

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

TA关注的人

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