自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (6)
  • 收藏
  • 关注

原创 QT相关知识

所有继承于QObject的类可以 返回元对象系统为其生成的metaObject对象,可以通过该对象中的方法获取QMetaMethod、QMetaProperty、QMetaEnum对象,通过这些对象就可以通过方法名称、变量名称、枚举名称直接操作,而不需要知道类的具体定义。槽函数是普通的C++函数,可以用一般的方式被调用,也可以将槽函数定义为虚函数,唯一的特点是可以被信号函数连接。如果有对象对信号感兴趣,就使用connect函数绑定来处理这个信号,信号发出时被连接的槽函数会自动被调用。

2023-06-19 20:16:17 1031

原创 操作系统知识

一段独占对某些共享资源访问的代码,在任意时刻只允许一个线程对共享资源进行访问,其他所有试图访问此临界区的线程将被挂起,一直持续到进入临界区的线程离开。消息队列的本质就是存放在内存中的消息的链表,而消息本质上是用户自定义的数据结构。Linux系统中,一个进程可以在任何时候发送信号给另一进程,一旦有信号产生对信号的处理方式有几种:执行默认操作(例如终止进程)、处理信号、忽略信号。:系统独立调度和分派的基本单位,线程自己不拥有操作系统资源,但是该线程可与同属进程的其它线程共享该进程所拥有的全部资源。

2023-05-16 20:23:42 417

原创 C++基础

纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数,包含纯虚函数的类称为抽象类。C++11为C++标准库带来了三个智能指针,分别是shared_ptr、unique_ptr、weak_ptr,使用智能指针就不用去主动管理内存,智能指针会自动释放内存。存在虚函数的类会有一张虚函数表,每个虚函数的函数指针都会在这个虚函数表中,该类对象的前4字节(32位系统)/8字节(64位系统)会指向虚函数表的指针。其他相关:函数覆盖(实现了和继承类中一样的函数,但基类没有声明虚函数)

2023-04-19 21:56:29 418

原创 设计模式-原型模式

导览:开篇(23种设计模式)、面向对象设计的6大原则创建型结构型行为型工厂方法(Factory Method)<类>适配器(Adapter)<类, 对象>解释器(Interpreter)<类>抽象工厂(Abstract Factory)<对象>桥接(Bridge)<对象>模板方法(Template Method)<对象>建造者(Builder)<对象>组合(Composite)&

2021-06-20 22:03:59 196 1

原创 设计模式-建造者模式

导览:开篇(23种设计模式)、面向对象设计的6大原则创建型结构型行为型工厂方法(Factory Method)<类>适配器(Adapter)<类, 对象>解释器(Interpreter)<类>抽象工厂(Abstract Factory)<对象>桥接(Bridge)<对象>模板方法(Template Method)<对象>建造者(Builder)<对象>组合(Composite)&

2021-06-14 21:31:34 129

原创 设计模式-抽象工厂模式

导览:开篇(23种设计模式)、面向对象设计的6大原则创建型结构型行为型工厂方法(Factory Method)<类>适配器(Adapter)<类, 对象>解释器(Interpreter)<类>抽象工厂(Abstract Factory)<对象>桥接(Bridge)<对象>模板方法(Template Method)<对象>建造者(Builder)<对象>组合(Composite)&

2021-05-30 21:29:21 123

原创 设计模式-工厂方法模式

导览:开篇(23种设计模式)、面向对象设计的6大原则创建型结构型行为型工厂方法(Factory Method)<类>适配器(Adapter)<类, 对象>解释器(Interpreter)<类>抽象工厂(Abstract Factory)<对象>桥接(Bridge)<对象>模板方法(Template Method)<对象>建造者(Builder)<对象>组合(Composite)&

2021-05-24 09:51:16 181

原创 设计模式-面向对象设计的6大原则

导览:开篇(23种设计模式)、面向对象设计的6大原则创建型结构型行为型工厂方法(Factory Method)<类>适配器(Adapter)<类, 对象>解释器(Interpreter)<类>抽象工厂(Abstract Factory)<对象>桥接(Bridge)<对象>模板方法(Template Method)<对象>建造者(Builder)<对象>组合(Composite)&

2021-05-09 22:14:53 152

原创 设计模式-开篇(23种设计模式)

23种设计模式广为流传的23中设计模式来源于面向对象软件设计的经验总结,这些模式都是经常能用到的重复设计,了解这些模式能够让我们更加简单方便地复用已有的成功设计。本系列会一一介绍23中设计模式,主要内容从《设计模式-可复用面向对象软件的基础》中总结而来。设计模式分类按照目的进行分类,设计模式被分为创建型、结构型、行为型。创建型模式:创建对象相关结构型模式:处理类或对象的组合行为型模式:描述类或对象之间的交互和职责分配按照范围进行分类,设计模式被分为类模式、对象模式。类模式:处理类和子类

2021-05-05 22:03:58 153

原创 homebrew最新国内源安装方法(2020年3月)

前言因为一些原因卸载了homebrew,但是用官网的安装方法很慢且容易中断,想用国内的源进行安装。网上大部分的方法都是cd ~curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install然后修改源后,用ruby进行安装。但是这个地址已经被“取缔”了,在浏...

2020-03-09 01:02:56 32981 27

原创 python类

类的创建和使用

2019-06-25 22:54:53 227

原创 python函数

函数定义和调用下面的代码是简单的函数定义例子,分别是无参数函数和有参数函数:def print_hello(): print("Hello world!") def print_string(string): print(string) print_hello()print_string("test")输出:Hello world!test多个参数的函数可...

2019-06-13 09:19:00 255

原创 python用户输入

接收用户输入input函数能够让程序暂停运行,等待用户进行输入,并获取输入的值:#hello.pymsg = raw_input("Please input: ")print(msg)终端结果:Please input: hellohello上面的例子用的是raw_input,在python2中该函数能更好的读取字符串输入,如果使用input就需要在字符串两边加上引号。inpu...

2019-05-12 22:00:29 1608

原创 python语句-if、while

if语句用if语言比较是否相等/不相等:a = 1if a == 1 : print("equal")else : print("not equal")b = "test"if b != "hello" : print("not equal")else : print("equal")输出:equalnot equalif语句多个条件的与/或判断:a = 90...

2019-05-12 17:25:43 358

原创 python字典

使用字典python的字典由一些列key和value构成,可以用于存放同类的数据,也可以用来存放同属的数据:scores = { "xiaoming": 60, "xiaohong": 70, "xiaohei": 80}infos = { "name": "xiaoming", "age": 20, "sex": "female"}print(scores)print(infos)...

2019-04-27 16:54:08 265

转载 python编码规范-PEP8

原文链接https://www.python.org/dev/peps/pep-0008/

2019-04-19 08:52:59 257

原创 python列表操作(二)

遍历列表

2019-04-18 09:28:39 292

原创 python列表操作(一)

python列表

2019-04-13 21:46:00 298

原创 python数据类型

变量message='hello world!'print(message)输出:hello world!以上代码中,message就是一个变量,在python中使用变量时,需要遵守一些规则:变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头变量名不能包含空格,但可使用下划线来分隔其中的单词。不要将Python关键字和函数名用作变量名,例如prin...

2019-03-09 21:09:10 176

原创 python环境搭建

Linux和MacOsX下的python环境搭建在Linux系统和MacOsX系统中,一般都默认安装了python。可以在终端中输入python或python3进行确认,如果已经安装会显示以下内容:Python 2.7.10 (default, Jul 30 2016, 18:31:42) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0...

2019-02-24 15:02:40 221

原创 python彩蛋之The Zen of Python

python中有个很有趣的“彩蛋”,也是很重要的一个“彩蛋”——The Zen of Python。输入import this之后就会出现以下的内容:The Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implicit.Simple is better than com...

2018-11-09 21:52:17 424

原创 《STL源码剖析》笔记-配接器adapters

上一篇:《STL源码剖析》笔记-仿函数(函数对象)配接器adapters在STL中起到转换、连接的作用,包括仿函数配接器(function adapter)、容器配接器(container adapter)、迭代器配接器(iterator adapter)。容器配接器在介绍序列式容器queue和stack时(https://blog.csdn.net/WizardtoH/article/de...

2018-11-03 12:57:13 287

原创 《STL源码剖析》笔记-仿函数(函数对象)

上一篇:《STL源码剖析》笔记-算法

2018-11-01 18:13:57 356

原创 《STL源码剖析》笔记-算法

上一篇:《STL源码剖析》笔记-hash_multiset、hash_multimapSTL提供了很多算法,以下列出部分常用的算法:int main(int argc, char* argv[]){ std::vector&amp;amp;amp;amp;amp;amp;lt;int&amp;amp;amp;amp;amp;amp;gt; vec = {0,1,2,3,4,5,6,7,8,9}; // accumulate:计算指定容器区域中,以0

2018-10-31 23:03:45 296

原创 《STL源码剖析》笔记-hash_multiset、hash_multimap

上一篇:《STL源码剖析》笔记-hash_set、hash_maphash_multiset/hash_multimap与hash_set/hash_map特性一致,区别在于multiset/multimap的键值能够重复。也就是说,他们使用了hashtable的insert_equal而非insert_unique。hash_multiset和hash_set的区别:... templ...

2018-10-24 22:05:19 251

原创 《STL源码剖析》笔记-hash_set、hash_map

上一篇:《STL源码剖析》笔记-hashtablehash_sethash_set底层机制由hashtable提供,和set一样能够快速搜索元素,但是set元素插入后会自动排序,而hash_set是无序的。template &amp;lt;class Value, class HashFcn = hash&amp;lt;Value&amp;gt;, class EqualKey = equal_to&amp;lt;...

2018-10-22 09:13:42 350

原创 《STL源码剖析》笔记-hashtable

上一篇:《STL源码剖析》笔记-multiset/multimap

2018-10-21 17:38:08 376

原创 《STL源码剖析》笔记-multiset/multimap

上一篇:《STL源码剖析》笔记-map

2018-10-16 16:54:13 299

原创 《STL源码剖析》笔记-map

上一篇:《STL源码剖析》笔记-setmap容器的特性是所有元素都会根据键值自动排序,并且所有元素都是pair,拥有键值和实值。pair的第一个元素为键值,第二个元素为实值。map当中不允许存在两个键值相同的元素。pair的定义pair定义了两个模板参数,并且访问权限为public。template &amp;amp;lt;class T1, class T2&amp;amp;gt;struct pair { ty...

2018-10-13 10:02:00 489

原创 《STL源码剖析》笔记-set

上一篇:《STL源码剖析》笔记-RB-treeset容器的特性就是所有元素都会根据键值进行自动排序,和map不同的是set的键值就是实值。并且通过set的迭代器无法改变set的键值,因为改变键值会打破set的排序。set排序的特性能够由rb-tree实现且所需接口rb-tree都已经提供,所以set底层采用了rb-tree。// 默认使用递增排序template &amp;amp;amp;lt;class Key,...

2018-10-12 19:32:00 291

原创 《STL源码剖析》笔记-RB-tree

上一篇:《STL源码剖析》笔记-树的介绍除了上一篇说到的AVL-tree之外,另一个常用的平衡二叉搜索树是RB-tree(红黑树)。RB-tree满足二叉搜索树的规则之外,还遵循以下特性:每个节点不是红色就是黑色。根节点为黑色。如果节点为红色,其子节点必须为黑色。任意一个节点到到NULL(树尾端)的任何路径,所含之黑色节点数必须相同。第四个特性和第三个特性确保了没有一条路径会比其他...

2018-10-10 18:40:25 676

原创 《STL源码剖析》笔记-树的介绍

上一篇:《STL源码剖析》笔记-priority_queue、heap算法序列式容器介绍完后就是关联式容器,关联式容器内部数据结构大多是平衡二叉树以获得较好的搜寻效率,因此先对树进行大概的了解。树由节点(nodes)和边(edges)构成。整棵树有一个最上端节点,称为根节点(root)。每个节点可以拥有具有方向性的边(directed edges),用来和其他节点相连。相连节点之中,在上者称为...

2018-09-22 22:11:42 482

原创 《STL源码剖析》笔记-priority_queue、heap算法

上一篇:《STL源码剖析》笔记-stack、queuepriority_queue是一个带权值的队列,权值最高的自动排在最前面,默认排序从大到小,同时具有队列先进先出、没有迭代器的特性。priority_queue也是一种container adapter,底层容器默认为vector。stack定义完整列表// 排序方式less(从大到小),也能指定为greater(从小到大)templa...

2018-09-22 00:13:04 432

原创 《STL源码剖析》笔记-stack、queue

上一篇:《STL源码剖析》笔记-dequestack是一种先进后出的数据结构,它只有一个出口,只能够在顶端新增、移除、取得元素,没有其他方式进行操作。并且stack默认示意deque作为基础容器来实现的,因为vector在扩容的时候有较差的时间复杂度,而list虽然有平稳的时间复杂度,但是总体平均复杂度较高,所以折中使用deque作为stack的底层容器。另外stack没有迭代器,因为只支持先...

2018-09-16 09:58:16 341

原创 《STL源码剖析》笔记-deque

上一篇:《STL源码剖析》笔记-list

2018-09-13 16:44:14 319

原创 《STL源码剖析》笔记-list

上一篇:《STL源码剖析》笔记-vector相较于vector的连续线性空间,list就复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。list的节点template &amp;amp;amp;amp;amp;amp;lt;class T&amp;amp;amp;amp;amp;amp;gt;struct __list_node{

2018-09-11 17:21:11 577

原创 《STL源码剖析》笔记-vector

上一篇:《STL源码剖析》笔记-容器的分类vector的元素排列和操作方式与array很相似,不同的是vector是动态空间,能够随着元素的添加自动扩展空间。它的实现关键在于对大小的控制以及重新配置空间时移动元素的效率。vector的迭代器// alloc是SGI STL的默认空间配置器template &amp;amp;amp;amp;amp;amp;lt;class T, class Alloc=alloc&amp;amp;amp;amp;amp;amp;gt;cla

2018-09-09 22:03:41 1199

原创 《STL源码剖析》笔记-容器的分类

上一篇:《STL源码剖析》笔记-迭代器iterators任何特定的数据结构都是为了实现某种特定的算法,STL中的容器是将运用最广的一些数据结构进行实现,例如:数组array、链表list、树tree、堆栈stack、队列queue、散列表hash talbe、集合set、映射表map等。根据数据在容器中的排列特性,可以分为序列式容器和关联式容器。 序列式容器序列式容器,其中的元素都可...

2018-09-06 23:58:44 452

原创 《STL源码剖析》笔记-迭代器iterators

上一篇:《STL源码剖析》笔记-空间配置器

2018-09-05 17:01:16 450

原创 《STL源码剖析》笔记-空间配置器

上一篇:《STL源码剖析》笔记-STL概论和版本介绍单从运用STL来说,空间配置器是了解不到的,因为它隐藏在了容器的背后默默工作。

2018-08-29 17:23:51 725

macbook用于调整自建和外接的屏幕分辨率工具RDM

macbook用于调整自建和外接的屏幕分辨率工具RDM,可以快速切换分辨率和调整屏幕显示方式为HiDPI。

2020-02-18

SGI STL源码

SGI STL原代码,有兴趣的同学可以看看。 .

2018-09-11

深入理解C++11

深入理解C++11介绍了部分C++11中的新特性,适合用来深入了解C++11。

2018-08-20

Duilib最新界面库(完整带demo)

Duilib最新完整界面库,带360、QQ、List、Menu等众多Demo。

2015-01-26

computerinfo:Duilib界面开发Window下的信息获取工具

Duilib:列表排序,列表载入图标,支持ico图标,树的基本应用,Tab页的基本应用 Windows API:注册表读取,网卡、CPU、硬盘等信息获取,修改开机密码,获取安装软件信息并实现双击卸载 IDE:VS2008 可使用NSIS打包安装

2015-01-26

仿记事本Demo

Notepad-W是仿记事本的一个Demo,界面使用Duilib库

2014-12-19

空空如也

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

TA关注的人

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