自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

临渊羡鱼,不如退而结网

主要拓展C++ 、Python、操作系统基础知识讲解

  • 博客(187)
  • 资源 (4)
  • 收藏
  • 关注

原创 Qt 鼠标事件触发到转发到传到接收对象全过程剖析

总结的说,Qt的事件和Qt中的signal不一样。如果我们使用系统预定义的控件,那我们关心的是信号,如果自定义控件我们关心的是事件。假如你在一个widget上连续地调用update() 十次,因update()而产生的这十个事件,将会自动地被合并为一个单独的事件,但是QPaintEvents事件附带的区域信息也合并了。但有时,你可能需要在调用event()函数之前做一些自己的操作,比如,对话框上某些组件可能并不需要响应回车键按下的事件,此时,你就需要重新定义组件的event()函数。

2024-03-15 14:17:20 1060

转载 理解内存模型和内存序 看这篇就够了!

memory_order_acquire&memory_order_acquire组合以及memory_order_release&memory_order_consume组合的对重排的影响:

2023-02-23 16:28:42 400

原创 四 、QML常用控件的使用详解

ApplicationWindow是Window的派生类,使用他需要使用下面语句引入Controls模块如果学习过Qt ApplicationWindow 有点像QMainWindow 窗口有menuBar,toolBar等状态栏。如果进行过GUi开发,想必对控件的使用不会不熟悉,例如Button ListTable 等;Text属性就是label标签的字体显示Rectangle{width:200;height:100;//在屏幕上显示helloworld字样。

2023-02-09 17:45:55 1472

原创 动态规划DP 二维数组类型2

由于我们的目的是从左上角到右下角,最小路径和是多少,那我们就定义 dp[i] [j]的含义为:当机器人从左上角走到(i, j) 这个位置时,最下的路径和是 dp[i] [j]。那么,dp[m-1] [n-1] 就是我们要的答案了。注意,这个网格相当于一个二维数组,数组是从下标为 0 开始算起的,所以 由下角的位置是 (m-1, n - 1),所以 dp[m-1] [n-1] 就是我们要走的答案。

2023-02-07 10:44:23 430

转载 动态规划 二维数组类型的习题

动态数组dp问题解题思路 1定义数组元素的含义;2找出数组元素间的关系式;3找出初始条件

2023-02-07 10:28:16 104

原创 VIX恐慌指数的计算代码C++版本

波动率指数(Volatility Index,VIX),又称恐慌指数,鉴于其有效反映美股市场恐慌和避险情绪而成为出色的市场情绪跟踪指标和风险对冲工具。早前和部分群友也有讨论过该指数,彼时临时找了芝加哥期权交易所(CBOE)公布的VIX指数的编制方案原版,仓促概览之后就指数编制的方法进行交流,但毕竟没实际计算过,对其中细节描述不甚理解,最后也未能形成较有建设性的交流结果。

2023-02-03 17:10:54 738

原创 八大排序算法C++实现 在vs下可直接调试运行

【代码】八大排序算法C++实现 在vs下可直接调试运行。

2023-02-03 16:39:27 187

原创 三、QML开发之qml 语言基础

属性的类型:int 、real、 double、 bool、string、color、list、font、等。介绍 QML就是用来编辑和生成Quick界面的语言,所以在开发界面之前一定要了解基础的QML语言基础知识。id :window //这几个都是对象的属性 id,后续关联信号的时候会用得到 长 宽。QML 文件就是后缀是.qml结尾的文件,下面用一个小例子来介绍具体的内容书写;点击 刚才新建 的photo.qrc文件 右击-》添加文件 -》选择本地的图片。

2023-01-19 10:17:19 1713

原创 二、QML工程之初始工程代码分析

本节内容主要讲解了main函数初始化和了解如何加载main.qml 文件,和qml简单的语法讲解。下一节就开始了真正的qml的学习了,例如 在主界面添加按钮 绑定按钮事件,初始化edit text等常用的控件。敬请期待下一节 再会!QML 类似于网页设计的 HTML,是一种标记语言,我们可以借助 CSS 对它进行美化,也可以借助。下面的代码是main.cpp,工程起始运行的代码段,具体的函数说明都在代码段里面进行了标注。不同平台下的 QML 使用相同的渲染机制,界面效果一致,不会随操作系统的不同而变化。

2023-01-18 15:29:41 1541

原创 一 、Qml开发之环境搭建

到这里软件运行的基础环境就搭建好了,从下一课开始正式讲解具体的空间展示和基础点击事件的绑定。点击 继续 按钮 选择Kit ,Kit 主要是软件编译器工具集;点击 继续 -〉完成 按钮。

2023-01-18 14:32:43 1200

原创 错误 C4430 缺少类型说明符 - 假定为 int, 注意: C++ 不支持默认 int,解决方法

问题主要是头文件引用问题,首先看看使用的变量类型是否正确引用头文件。

2021-06-10 16:13:23 897

原创 gSoap 服务框架可以做些什么?

gSoap 服务框架可以做些什么? 自动生成C和C ++源代码以使用和部署XML和JSON REST API和SOAP / XML Web服务API,使您可以专注于应用程序逻辑而不是基础结构 使用gSOAP的快速XML流处理模型进行XML解析和验证,实现可移植的快速精益API,仅用几KB的代码和数据即可每秒处理10K +条消息。 将WSDL转换为高效的C或C ++源代码,以...

2021-05-11 16:47:13 225

原创 为什么要学习WebServer框架?

为什么要学习WebServer框架?1、 定义Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。 之前并没有听说过什么WebServer框架,对于造轮子惯的我,之前也从基础搭建了一个web服务框架,对于网页界面的请...

2021-05-11 16:39:09 314

原创 桥接模式

在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。当然,这样的例子还有很多,如不同颜色和字体的文字、不同品牌和功率的汽车、不同性别和职业的男女、支持不同平台和不同文件格式的媒体播放器等。如果用桥接模式就能很好地解决这些问题。桥接模式的定义与特点桥接(Bridge)模式的定义如下:将抽象与实现分

2020-09-03 14:57:29 122

原创 Linux 命令行 sort 使用

sort -t ',' -k 1.1 ,1,2 -k 3n files.txt > files_sorted.txt神奇的linux 通过这个我们可以对大文件进行排序按行,真的太棒了-t 分隔符 -k 通过第几列进行排序1.1 ,1.2 第一列的第一第二个字符进行排序-k 可以进行追加 比较-o 可以覆盖原有的文件...

2020-09-03 14:41:50 156

原创 Linux 命令 rsync 文件同步

1 rsync src dest2 rsync src [User@]host:DEST . rsync /home . [email protected]::home-v, --verbose 详细模式输出。-q, --quiet 精简输出模式。-c, --checksum 打开校验开关,强制对文件传输进行校验。-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。-r, --recursive 对子目录以递归模式处理。-R,.

2020-09-03 14:40:29 143

原创 linux 命令 du

du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]常用参数:-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes 显示目录或文件大小时,以byte为单位。-c或–total 除了显示目录或文件的大小外,同时也显.

2020-09-03 14:39:14 397

原创 linux 命令 df

dfdf命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。df命令各个选项的含义如下: -a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。 -k:以k字节为单位显示。 -i:显示i节点信息,而不是磁盘块。 -t:显示各指定类型的文件系统的磁盘空间使用情况。 -x:列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。 -T:显示文件系统类型。我们先看看使用df命.

2020-09-03 14:37:16 325

转载 QT QEvent 事件调用的来龙去脉

Qt事件驱动机制原理及源码剖析 什么是Qt事件驱动? 我们在写Qt工程类项目的时候都会发现,主程序里面都有这么一段代码:int main(int argc, char *argv[]){QApplication a(argc, argv);MainWindow w;w.show();return a.exec();} 实际上a.exec()便是Qt程序进入事件消息循环,具体我们进入代码内部看看:int QCore...

2020-09-03 14:03:40 2330

转载 堆排序

堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。算法描述将初始待排序关键字序列(R1,R2….Rn)构建成大顶堆,此堆为初始的无序区;将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,……Rn-1)和新的有序区(Rn),且满足R[1,2…n-1]<=R[n];由于交换后新的堆顶R[1]可能违反堆的性质,因此需要对当前无序区(R1,R2,.

2020-06-04 16:24:55 203

原创 快速排序算法讲解c++

//// main.cpp// quick-sort//// Created by mac on 2020/6/4.// Copyright © 2020 mac. All rights reserved.////快速排序的总体的算法就是利用二分法,最终把数组进行排序在一组数组里面进行选择一个数字然后通过这个数字对数据进行分割,比这个数大的放到左边,比这个数小的放到右边//然后通过递归的方式进行不断递归知道数组数据排序完成#include <iostrea...

2020-06-04 11:28:14 184

转载 linux sort 多列正排序,倒排序

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。使用方法:sort [选项]... [文件]...长选项必须用的參数在使用短选项时也是必须的。顺序选项:-b, --ignore-leading-blanks ignore leading blanks-d, --dictionary-order consider only blanks and alphanumeric characters-f, --i...

2020-05-29 16:50:54 793

原创 Boost库安装与使用

简介Boost库是一个可移植、提供源码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员近2000人。Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。Boost库中较著名库:1)Regex,正则表达式库;2)Spirit,LLpars...

2020-05-27 17:08:45 935

原创 小和尚上山学艺-设计模式-简单工厂实战课

简单工厂模式  主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。GOOD:适用于不同情况创建不同的类时BUG:客户端必须要知道基类和工厂类,耦合性差class COperation{public: int m_nFirst; int m_nSecond; virtual double GetR...

2020-05-27 17:05:50 138

原创 小和尚上山学艺-设计模式-装饰模式

装饰模式动态地给一个对象添加一些额外的职责(不重要的功能,只是偶然一次要执行),就增加功能来说,装饰模式比生成子类更为灵活。建造过程不稳定,按正确的顺序串联起来进行控制。GOOD:当你向旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需要加入的仅仅是一些特定情况下才会执行的特定的功能时(简单点就是不是核心应用的功能),就会增加类的复杂度。装饰模式就是把要添加的附加功能分别放在单独的类中...

2020-05-27 17:05:23 149

原创 剖析 选择排序算法 心里历程

大概思想:1 选择排序的主要思想就是,经过一次的遍历,通过数据的对比,找到这一次的最小元素的下标,然后把该元素与第一个元素进行替换。2 把游标向后一位,然后把第二位的元素为基准,通过遍历循环 查找第二大小元素的坐标,然后把该最小元素的坐标,放到前面第二位3游标在向后一位,第三位为基准,通过遍历查找第三小元素的坐标,把最小的元素,放到前面第三位........................思想很简单但是,我们知道从抽象的概念到具体的代码实现还是有一定的差距的,那我接下来我就带领大家一步一

2020-05-27 17:03:35 172

翻译 OpenGL_triangle

#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow ...

2020-05-02 10:37:14 202

原创 QTextBrowser调用setSource()设置相对路径问题

    QVBoxLayout *mainLayout = new QVBoxLayout;    QUrl chtmlPath;    chtmlPath.setUrl("aboutus.html");    QString filepath = "F:/resource/html";    setAttribute(Qt::WA_DeleteOnClose);    setAttri...

2018-11-27 09:27:18 1872

原创 二叉树常见面试题习题

一、常见题型1. 求两个节点的最近公共祖先;2. 求二叉树中最远的两个节点的距离;3. 由前序遍历和中序遍历重建二叉树(如:前序序列:1 2 3 4 5 6 - 中序序列 :3 2 4 1 6 5);4. 判断一棵树是否是完全二叉树 ;5. 将二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向;6.求二叉树的宽度;7. 判断一棵二叉树是否是平衡二叉树;8.判断...

2018-07-11 08:26:25 436

原创 线程池作用

线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。多线程:解决多任务同时执行的需求,合理使用CPU资源。多线程的运行是根据CPU切换完成,如何切换由CPU决定,因此多线程运行具有不确定性。线程池:基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池在什么情况下使用线程池? ...

2018-07-09 14:57:34 404

原创 面试 map set list 使用场景

1.如果你经常会使用索引来对容器中的元素进行访问,那么 List 是你的正确的选择。如果你已经知道索引了的话,那么 List 的实现类比如 ArrayList 可以提供更快速的访问,如果经常添加删除元素的,那么肯定要选择LinkedList。2.如果你想容器中的元素能够按照它们插入的次序进行有序存储,那么还是 List,因为 List 是一个有序容器,它按照插入顺序进行存储。3.如果你想保...

2018-07-09 13:36:45 778

原创 STL 几种容器的比较优缺点

1、set和map比较\setmap共同点都是无序的保存元素,只是通过它提供的借口对里面的元素进行访问,底层都是采用红黑树实现 不同点集合,用来判断某一个元素是不是在一个组里面,使用的比较少映射,相当于字典,把一个值映射成另一个值,可以创建字典总结:a. 优点查找某一个数的时间为O(logn)O(logn)遍历时采用iterator,效果不错b. 缺点每次插入值的时候,都需要调整红黑树,效率有一定...

2018-07-09 13:25:25 6784 1

原创 CSDN 编写样式选择方法

平时写博客是不是感觉自己的样式好low;如果的话就跟着学习吧!在这个地方编辑CSDN_编辑样式显示 HTML/XMLCSDN_编辑样式显示 objective-cCSDN_编辑样式显示 CSSCSDN_编辑样式显示 C#CSDN_编辑样式显示 C++CSDN_编辑样式显示 python...

2018-07-06 09:26:52 199

原创 小和尚上山去拜师-面试题_实现string()拷贝构造函数

*通过实现拷贝构造函数对理解c++初始化类对象很有帮助*/class String { public: String(const char *str=NULL); //含参数的构造 String(const String &amp;other); //复制构造 String&amp; operator=(const String &amp;other); /...

2018-07-06 09:17:14 206

原创 小和尚上山去拜师-面试题_strcopy()

面试的时候经常出这个函数!char * strcpy(char *dst,const char *src)   //[1]{    assert(dst != NULL &amp;&amp; src != NULL);    //[2] //确保该指针没有指向的不是空的,不然很危险,野指针    char *address = dst;  //[3]  // 后面的复制copy会更改dst的首地址...

2018-07-06 08:54:30 435

原创 小和尚上山学艺-设计模式-装饰模式

(三)装饰模式动态地给一个对象添加一些额外的职责(不重要的功能,只是偶然一次要执行),就增加功能来说,装饰模式比生成子类更为灵活。建造过程不稳定,按正确的顺序串联起来进行控制。 GOOD:当你向旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需要加入的仅仅是一些特定情况下才会执行的特定的功能时(简单点就是不是核心应用的功能),就会增加类的复杂度。装饰模式就是把要添加的附加功能分别放在单...

2018-07-05 13:37:54 173

原创 c++类继承关系调用机制

/*如果子类转换为父类,如果父亲的函数为虚函数,父指针调用的函数为子的函数;否则为父亲的函数;如果父亲转向子类,如论虚实调用的都是父类函数;*/#include "stdafx.h"#include &lt;iostream&gt;#include &lt;memory&gt;#include &lt;exception&gt;using namespace std;using std::cout...

2018-06-29 15:54:25 583 1

原创 小和尚上山学习之智能指针(六)--boost::weak_ptr

boost::weak_ptr 属于 boost 库,定义在 namespace boost 中,包含头文件 #include&lt;boost/smart_ptr.hpp&gt; 便可以使用。在讲 boost::weak_ptr 之前,让我们先回顾一下前面讲解的内容。似乎 boost::scoped_ptr、boost::shared_ptr 这两个智能指针就可以解决所有单个对象内存的管理了,这...

2018-06-29 11:25:56 227

原创 小和尚上山学习之智能指针(五)--boost::shared_array

boost::shared_array 属于 boost 库,定义在 namespace boost 中,包含头文件 #include&lt;boost/smart_ptr.hpp&gt; 便可以使用。 由boost::scoped_array独享所有权,显然在很多情况下(参数传递、对象赋值等)不满足需求,由此我们引入 boost::shared_array。跟 boost::shared_ptr...

2018-06-29 11:11:10 1536

原创 小和尚上山学习之智能指针(四)--boost::scoped_array

boost::scoped_array 属于 boost 库,定义在 namespace boost 中,包含头文件 #include&lt;boost/smart_ptr.hpp&gt; 便可以使用。 boost::scoped_array 便是用于管理动态数组的。跟 boost::scoped_ptr 一样,也是独享所有权的。我们还是从代码开始分析:class Simple { public:...

2018-06-29 11:04:50 291

opnegl_2.zip

在mac 平台运行openGL demo 包含 Glew glew glad 库以及demo,运行展示三角形

2020-05-02

MFC界面开发

本书的主要内容如下: 1。对win32程式的基本概念和开发流程的阐述。 2。对MFC六大关键技术的模拟(MFC的类别层次,MFC程式的初始化过程,RTII,动态生成,机制,讯息映射,命令绕行) 3。对Visual C++整合开发环境的介绍。 4。对MFC三大巨集的详细分析。 5。MFC的层次结构和MFC的骨干程式。

2018-06-22

qt必备学习手册初级

目录 1 1 Qt概述 3 1.1 什么是Qt 3 1.2 Qt的发展史 4 1.3 支持的平台 4 1.4 Qt版本 4 1.5 Qt的安装 5 Linux Host 5 OS X Host 5 Windows Host 5 1.6 Qt的优点 5 2 创建Qt项目 6 2.1 使用向导创建 6 2.2 手动创建 9 2.3 .pro文件 10 2.4 一个最简单的Qt应用程序 12 3 信号和槽机制 13 3.1 信号和槽 13 3.2 自定义信号槽 15 自定义信号槽需要注意的事项 18 信号槽的更多用法 18 3.3 Lambda表达式 19 4 Qt窗口系统 21 4.1 Qt窗口坐标体系 21 坐标体系 21 4.2 QWidget 21 4.2.1 对象模型 21 4.3 QMainWindow 23 4.3.1 菜单栏 24 4.3.2 工具栏 25 4.3.3 状态栏 25 4.4 资源文件 26 4.5 对话框QDialog 29 4.5.1 基本概念 29 4.5.2 标准对话框 30 4.5.3 自定义消息框 31 4.5.4 消息对话框 33 4.5.5 标准文件对话框 36 4.6 常用控件 39 4.6.1 QLabel控件使用 39 4.6.2 QLineEdit 41 4.6.3 其他控件 43 4.7 布局管理器 43 4.7.1 水平/垂直/网格布局 44 4.7.2 自定义控件 46 5 Qt消息机制和事件 50 5.1 事件 50 5.2 event() 52 5.3 事件过滤器 55 5.4 总结 59 5.5 不规则窗体 62 6 绘图和绘图设备 63 6.1 QPainter 63 6.2 绘图设备 65 6.2.1 QPixmap、QBitmap、QImage 66 6.2.2 QPicture 69 7 文件系统 70 7.1 基本文件操作 71 7.2 二进制文件读写 73 7.3 文本文件读写 75 8 Socket通信 76 8.1 TCP/IP 77 服务器端 77 客户端 79 8.2 UDP 81 广播 82 组播 82 8.3 TCP/IP 和 UDP的区别 83 9 多线程 83 9.1 线程介绍 84 9.2 多线程的使用 87 9.3 使用线程绘图 89 10 数据库操作 91 10.1 数据库操作 91 10.2 使用模型操作数据库 97 查询操作 97 插入操作 98 更新操作 99 删除操作 100 10.3 可视化显示数据库数据 100 11 Qt程序打包 102 1Qt概述

2018-06-22

QT_creator5.7 实现360界面9.1全

在QTcreator 5.7编辑器实现360界面,可以直接运行, 继360安全卫士9.1之后,应广大爱好者要求,持续升级! 此版本包括:主界面、换肤界面、新版特性界面、关于我们界面、登录界面(36.、人人、新浪可切换)、注册界面、系统托盘、多语化实现、边框阴影效果等! 资源包含所有源码、资源文件。。。 欢迎讨论、交流,欢迎批评指正,欢迎留言。。。

2018-06-13

空空如也

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

TA关注的人

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