自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ubuntu打包opencv和C++可执行程序

关于OpenCV程序打包的问题具体的打包过程可以参考博客:https://blog.csdn.net/qq_28901541/article/details/97310437具体的就不细说了,但是在最后报错的情况下博客中写的有些问题,首先我们要删除libc.so.6删除它之后继续运行程序看接下来会报什么错误,比如说我的报third_party/libpthread.so.0: symbol __libc_vfork, version GLIBC_PRIVATE not defined in file li

2020-09-21 22:10:49 564

原创 第二章 JavaScript语法

本章的主要内容:语句变量和数组操作符条件语句和循环语句函数与对象2.1 准备工作编写JavaScript脚本不需要任何特殊软件,一个普通的文本编辑器和一个Web浏览器就足够了。用JavaScript编写的代码必须通过HTML/XHTML文档才能执行。有两种方式可以做到这点。第一种方式是将JavaScript代码放到文档标签中的 <!DOCTYPE html><html lang="en"><head> <meta charset="u

2020-08-30 16:44:49 225

原创 第一章 JavaScript简史

主要内容:1.1 JavaScript的起源1.2 DOM1.3 浏览器战争1.4 制定标准1.1 JavaScript的起源JavaScript的出现是为了实现网页的内容的可交互性。JavaScript是一种脚本语言,通常只能通过Web浏览器去完成一些操作而不能像普通意义上的程序那样独立运行。因为需要Web浏览器对其进行解释和执行。JavaScript还向程序员提供了一些可以操控Web浏览器的手段。例如,JavaScript语言可以用来调整Web浏览器窗口的高度,宽度和位

2020-08-30 16:20:48 242

原创 寻找两个有序数组的中位数

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1: nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)...

2019-10-12 16:16:51 187

原创 求不含有重复字符的最长子串的长度

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: “abcabcbb” 输出: 3 解释:因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb” 输出: 1 解释:因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是“wke”,所...

2019-10-12 14:27:19 923

原创 两数相加

LeetCode之两数相加:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -...

2019-10-10 19:41:05 175

原创 求两数之和

前言:时年2019年10月9日,互联网的秋招已经基本宣告结束,然而作为一个渣农的我至今没有拿到一个offer,痛定思痛,秋招不成转战春招。在匆忙应付秋招的时候我发现自己无论是基本知识点还是编程算法题的相关的知识都太为薄弱,所以我决定为了自己的春招开始在自己的博客开个专栏用来督促我进行刷题,同时也是为了我可以对相关的知识点有个消化。LeetCode第一题,求两数之和:原题为:给定一个整数数组 ...

2019-10-09 18:41:05 231

原创 哈希算法

哈希算法简称为散列法,也成哈希算法(英译),是将一个大文件映射成一个小串字符。与指纹一样,就是以较短的信息来保证文件的唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。就像服务器存了10个文本文件,你现在想判断一个新的文本文件和那10个文件有没有一个是一样的。你不可能去比对每个文本里面的每个字节,很有可能,两个文本文件都是5000个字节,但是只有最后一位有所不同,但这样的,你...

2019-08-21 18:01:43 221

原创 广度寻路(C++实现)

广度优先遍历,是一种非启发式、不用预处理的寻路算法。通常会将整个图全部遍历,意图寻找终点。(也就是说如果终点位置适宜期一般会遍历整个地图)一般情况,广度优先遍历算法都是基于队列结构,先进先出的遍历所有节点。该寻路算法,通常先将起点加入队列结构,然后将该点周边符合要求(未加入队列结构并且可以到达的点)的点全部再次加入队列结构中,意图下一次遍历。一直循环该方法。直至全部遍历或者找到终点。关于广度优...

2019-08-19 10:42:32 399

原创

堆:是一种完全二叉树,所以在堆的学习中可以和完全二叉树相互联系,其具有完全二叉树所具有的的性质,比如父节点必然大于子节点。堆 最大(小)完全二叉树(堆分为:最大堆=>最大完全二叉树;最小堆=>最小完全二叉树)但堆又具有完全二叉树所不具有的性质,比如对可以进行节点元素的删除,而完全二叉树要删除一个节点元素的话只有叶子节点可供选择。通过堆的删除可以实现堆排序,如果项目中需要用到堆,可以...

2019-08-19 10:39:43 161

原创 完全二叉树

二叉树:树中的每一个节点,子节点的个数最多只有两个。度为2的普通树和二叉树没有什么区别,如果这两棵树的某一棵树只有一个子节点,在普通树中没有没有左右之分,但是在二叉树中有左右之分。二叉树存在的五种情况:1.空树2.只有一个根节点的二叉树。3.只有一颗左子树的二叉树。4.只有一颗右子树的二叉树。5.有左右子树的二叉树。二叉树的重要特性:1.二叉树中的第i层上的节点数最多为2的i次方...

2019-08-19 10:36:35 1505

原创 树(C++实现)

这里所讲述的树是普通树其每一个节点都含有三个指针,包括父指针,孩子指针,以及兄弟指针。(请称呼我为灵魂画家)其遍历规则如图所示,一个父节点只指向一个子节点,其他的子节点通过兄弟指针连接,这样需要先遍历兄弟节点,然后在遍历子节点。其简易代码如下所示:template<class T>class CMyTree_List{ struct TreeNode//私有结构 {...

2019-08-19 10:34:26 933

原创 深度寻路算法(C++实现)

深度寻路算法,使用的是栈模板,通过将其走过的点的坐标压入栈中,然后遍历其所在位置的各个方向寻找可以通行的"路径",一般情况下当迷宫的范围不太大时,其又存在路径是可以遍历到路径的,但是深度寻路并不会寻找最短路径。并且当迷宫足够大时,且其可通行的点足够多时,也就是一直都有点压入栈中,这时是找不到迷宫的出口的,还会使栈的占用内存过大,导致栈溢出。前面是个引子,下面开始真正的讲述深度深度优先搜索了先来说...

2019-08-19 10:31:38 1230

原创 排序算法(C++)实现

//选择排序 选择一个固定位置上的值和后面所有位置上的值做比较void select_sort(int arr[], int len){ //for (int i = 0; i < len - 1; ++i) //{ // for (int j = i + 1; j < len; ++j) // { // if (arr[i] > arr[j]) // {...

2019-08-18 16:12:54 131

原创 map容器

在讲述map容器之前先来说一下序列式容器,序列式容器是存放数据的一个绝佳的地方,但是其也存在一定的缺陷,就是它的访问机制并不高效,这样就出现了后续的关联式容器关联式容器分为map,multimap,set multiset这几种首先先来说一下map容器:map里面存放的一个元素分为两个部分一个为key,一个为value用key作为索引目录,来索引value。map共有四种类型:1.map...

2019-08-18 16:10:12 218

原创 deque,list容器

deque容器是以双端队列的形式来组织元素的,可以在容器的头部和尾部高效的插入和删除元素。1.deque容器的应用场景是先进先出的场景,像排队的队列。2.可以使用下标来访问deque容器中的元素。3.deque的组织方式导致其大小和容量总是相等的。deque和vector的不同之处1.deque为双向开口,可以在头部和尾部高效的插入和删除(而vector只可以尾部插入和删除)2.deq...

2019-08-18 16:07:54 242

原创 Vector容器

vector为序列式容器,并不会对元素进行排序,元素的顺序和存储它们的顺序一样。要说这个vector动态数组,咱们就必须先来了解一下array这个静态数组。1.和标准容器相比,array的空间开销格外的小。(这提供了两个优点,如果使用at(),当用一个非法的索引访问数组元素时可以被检测到。数组容器可以作为参数传给函数,而不再需要单独去指定数组元素的个数)2.使用容器array需要在源文件中包...

2019-08-18 16:05:33 168

原创 STL概述

1. STL容器的分类:2. STL容器的要求:3. 容器的迭代器:STL容器的分类:一般来讲STL容器可以分为两大类,一类为序列式容器,另一类为关联式容器。序列式容器为:vector,deque,list(可序),序列式容器每个元素都有自己固定的位置,这个位置只与插入的时间和位置,与元素的大小无关。关联式容器:map,multimap,set,multiset(已序)每个元素都...

2019-08-18 15:51:44 258

原创 利用QT自带的multimedia制作简单的视频播放器

由于Qt自带multimedia播放的视频格式现在基本都无法使用,所以这里需要安装一个LAV Video可以解码视频。其pro文件需要添加QT += core gui multimedia multimediawidgets重载QSlider鼠标响应事件,实现单击跳转至任意位置重载mouseMovedEvent事件:customslider.hfndef CUSTOM...

2019-06-22 19:11:17 4686 6

原创 QT踩坑第十二天(网络编程实战)

QT网络编程中主要包含这几个类:QAbstractSocket(QTcpSocket、QUdpSocket)QNetworkInterfaceQHostAdressQUrlQNetworkAccessManagerQNetworkReplyQWebSocket1、套接字是什么?用一个比较形象的比喻墙上的一个插座就是一个socket(套接字)实质上:socket是一个IO设备(...

2019-05-25 17:17:50 1730

原创 MD5工具开发(QT编程)

MD5工具开发MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于 确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald LinnRivest)设计,于1992年公开,用以取代MD4算法。MD5应用编辑一致性验证数字签名安全访问认证...

2019-05-20 18:40:27 326

原创 QT踩坑第十一天(QT多线程)

前言:QT在什么时候会用到多线程:所有的IO操作都要放到线程里面1、IO操作QIODevice文件IO网络IO(套接字eg:CAN Linux下也是套接字)串口等外设,因为他们不确定什么时候可以读完。2、耗时的算法eg:文件压缩 信号处理注意:1、线程里面尽量少用while(1)+sleep();尽量使用事件驱动,少用耗时扫描并发控制简介:进行时间片轮流:比如让xx执行0.000...

2019-05-20 18:29:45 2019 1

原创 QT踩坑第十天(ini,xml及数据库操作)

一、TabWidget控件TableWidget类似于excel表格insertColumn()列插入函数insertRow()行插入函数setItem()文件添加1.0UI界面添加Item表头每个Item都可以单独设置其属性1.1代码添加Item设置行、列宽度//设置tableWidget的行列宽度 ui->tableWidget->setRowCount...

2019-05-17 16:43:10 908 2

原创 QT踩坑第九天(2D绘图)

1、2D绘图简介1.1 为什么需要2D绘图在Qt界面编程中,通常会遇到使用Qt自带控件不能解决的问题,这时2D绘图给我们提 供了专用定制化的工具。1.2 QPainter介绍2D绘图离不开QPainter,可以把QPainter想象成一个画笔,开发人员拿着画笔理论上 是可以绘制任何你想要的图形。QPainter 一般在一个部件(widget)重绘事件( PaintEvent )的处理函数p...

2019-05-13 14:52:20 982

原创 QT之转盘小项目

直接上代码,建立一个Qt Widgets Applicationwidget.h #ifndef WIDGET_H #define WIDGET_H #include<QPainter> #include <QWidget> #include<QTimer> #include <QPaintEvent> ...

2019-05-11 12:28:04 855

原创 QT踩坑第八天(QT事件)

1. QT事件介绍1.1事件介绍事件是对各种应用程序需要的知道由应用程序内部或者外部产生的事情或者动作的通称,在QT中使用一个对象来表示一个事件,它继承自QEvent类。常见事件:鼠标事件,键盘事件,定时事件,上下菜单事件,关闭事件,拖放事件,绘制事件,触摸屏事件。1.2事件的处理重载Event函数重新实现事件的paintEvent(),mousePressEvent()事件处理函数...

2019-05-10 17:16:13 540

原创 QT踩坑之路第七天(数据结构)

1. 常用数据类型1.1 qint8 quint8 qint16 quint16 qint32 quint32 qint64 quint64 qreal .文档索引类型 说明 大小类型 说明 大小qint8 signed char 1quint8 unsigned char 1qint16 signed short 2quint16 unsigned short 2qint32...

2019-05-09 16:05:57 1984 2

原创 QT踩坑第六天(文件管理)

先配置好Qt调试器QT+MSVC环境需要配置的一、文件管理1.1 目录操作主要用到两个类:QDir、QFileInfoQDir类QDir类具有存取目录结构和内容的能力,使用它可以操作目录,存取目录或文件信息、操作底层文件系统,而且还可以存取Qt的资源文件。Qt使用"/“作为通用的目录分隔符和URL路径分隔符。如果在程序中使用”/“作为目录分隔符,Qt会自动转换为符合底层操作系统的分...

2019-05-07 16:00:30 1006

原创 Qt踩坑第五天(界面布局和样式表)

在Qt中主要提供的是Layout类及其子类来布局管理器。它们可以实现常用的布局管理功能。而布局管理可以用两个字来归纳:排版布局方式:Vertical LayoutHorizontal LayoutGrid LayoutFrom Layout布局器的边框Layout也有它的属性配置。样式表void setStyleSheet(QString sheetName){//...

2019-05-05 09:17:36 807

原创 QT踩坑第四天(基本控件二)

一、QT的Ui设计框架1.1UI文件到底做了什么?ui‐>setupUi(this);1.2从Qt设计器中窥视Qt的继承关系1.3添加progressBar到stateBar观察QtCreator发现状态栏中有个进度条showMessage 状态显示文字ui‐>statusBar‐>showMessage("message", 2000); ui‐>s...

2019-05-02 22:31:23 556

原创 QT踩坑之第三天(基本控件1)

目录:1、Qt资源图标添加和使用2、Buttons按钮2.1QPushButton2.2QToolButton2.3QRadioButton2.4QCheckBox3、InputWidgets输入控件3.1Combobox3.2FontComboBox3.3LineEdit3.4QTextEdit3.5SpinBox+DoubleSpinBox3.6TimeEdit+Da...

2019-05-01 20:23:08 669

原创 Qt踩坑之第二天(图形界面开发的基础)

1、Qt的坐标系2、QWidget、QDialog、QMainWindow的异同点3、窗口的几何尺寸4、QMainWndow主窗口5、模态、非模态、半模态对话框的区别6、信号与槽Qt的两把利刃:UI设计器+信号与槽1、Qt的坐标系2.QWidget、QDialog、QMainWindow的异同点消息对话框文件对话框3、窗口的几何尺寸在Qt助手中搜索:Wind...

2019-04-28 15:39:37 623

原创 Qt踩坑之路第一天(Qt环境的搭建)

以此博客来纪念我的Qt踩坑的第一天Windows环境下安装Qt Create+Qt下载地址: http://download.qt.io/ ­>http://download.qt.io/official_releases/qt/5.12/5.12.1/ http://download.qt.io/archive/qt/5.9/5.9.5/安装步骤:前面...

2019-04-26 19:59:36 286

原创 Win32学习(第十四天)windows网络通讯之udp

1、tcp的11种状态连接:3次握手,要建立稳定的连接通道必须有3个步骤1、客户端向服务器发送信息(报文)SYN同步标志2、客户端把刚刚客户端发送的信息SYN重新发回客户端,再发一次报文ACK(确认)3、客户端回复服务端ack代表收到服务端是不会主动向客户端连接单工(a发给b),半双工(a可以发给b,b也可以发给a,不能同时相互发送),双工(a可以发给b,b也可以发给a,能同时相互发送...

2019-04-15 19:27:01 550

原创 Win32编程(第十三天)windows网络通讯之tcp

windows网络通讯:1、网络常识;2、socket;3、tcp通信;4、udp通信网络架构:七层,五层架构(基于功能或者协议来划分)7层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层5层:应用层(应用层,表示层,会话层),传输层,网络层,数据链路层,物理层tcp/ip是一个协议族socket ip地址,端口号(源ip地址与目标地址ip以及源端口号和目标端口号的组合称为套...

2019-04-15 19:19:47 508

原创 Win32学习(第十二天)线程通讯

线程通讯:线程需要在两种情况下进行通讯1、如果有多个线程访问共享资源而不能够使这个资源被破坏2、当一个线程将某一个任务完成之后,通知另一个线程接着去完成下一个任务线程的互斥访问分为1、用户区间2、内核对象(但内核对象并不是只能用来做线程互斥)这里采用一个控制台应用程序进行说明://一、用户区间//临界区//临界区 1、定义一个临界区变量//CRITICAL_SECTION...

2019-04-12 18:50:07 69

原创 Win32学习(第十一天)进程与线程初探

进程 通常被定义为一个正在运行的程序实例。线程 线程是进程的一部分,线程总是在某个进程的环境中被创建,它是进程的某一个执行序列(像函数)。在这里可以做一个比喻,如果把进程比喻成我们过去的地主的话,那么线程就相当于那个时代的长工。因为地主是非常懒的所以进程的活动性不强,如果想要通过一个进程完成某个操作,它必须有一个在它环境中运行的线程。如果需要完成多步操作,尽量通过多线程进行完成,这样可以尽...

2019-04-12 16:50:56 139

原创 Win32学习(第十天)控件与文件操作

控件:上次笔记记述了button,edit,static常用的控件及其使用方式,这次的控件主要是讲述组合框combobox的使用这里首先需要借助一个自定义的控件创建函数//创建控件void CreateControl(HWND hParentWnd){ //WS_BORDER 在控件的外面添加边框 CreateWindow(_T("static"), _T("请输入内容"), WS...

2019-04-08 17:39:18 187

原创 Win32学习(第九天)控件初探

如果要谈控件的话那就要先来谈一下控件的载体——对话框:对话框分为模态对话框和非模态对话框两种对话框1、模态对话框:阻塞(同步)对话框,对这个对话框之外的应用程序窗口来进行操作,必须要先操作完当前对话框。2、非模态对话框:非阻塞(异步)对话框模式,对这个对话框之外的应用程序窗口来进行操作,可以直接进行操作。对话框创建的步骤(四步)1、添加对话框资源2、调用一个函数去创建一个对话框(模态:...

2019-04-04 18:53:51 167

原创 Win32学习(第八天)gdi最后一弹

通过这三天的学习使我对gdi有了进一步的认识,但由于我个人智慧的有限导致了认识和理解的造成的片面和不足,还请假见谅。当位图的资源在在处理主窗口消息的区域进行响应时,可以采用WM_PAINT后面添加代码的方式,还可以选用按键或者鼠标响应的方法,如下面就是采用鼠标响应的方法case WM_LBUTTONDOWN: { hdc = GetDC(hWnd);//获得设备的主DC ...

2019-04-03 16:04:31 146

空空如也

空空如也

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

TA关注的人

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