- 博客(24)
- 收藏
- 关注
原创 二叉树 /链表
二叉树分类一、完全二叉树若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。二、满二叉树除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树三、平衡二叉树是一棵空树或它的任意节点的左右两个子树的高度差的绝对值不超过1四、扩充二叉树二叉树的应用场景普通的二叉树,很难构成现实的应用场景,但因其简单,常用于学习研究,平衡二叉树则是实际应用比较多的。常见于快速匹配、搜索等方面。常
2025-05-13 13:58:42
742
原创 STL相关记录
一.STL有哪些组件?1、容器序列式容器,关联式容器序列式容器:vertor heap queue list stack…关联式容器:map set …2、算法各种常见算法,如sort,search,copy,erase3、迭代器扮演容器与算法之间的胶合剂,是所谓的“泛型指针”。共有五种类型,从实现角度看,迭代器是一种将operator*,operator->,operator++,operator–等指针相关操作予以重载的class template。所有STL容器都附带有自己专属的
2025-05-13 13:55:43
524
原创 指针的概念
区别指针的类型,指针所指的类型,指针的值(1)、指针的类型:把指针声明语句里面的指针变量的名字去掉,剩下的就是指针的类型int* ptr;// 指针的类型是int*chat* ptr;// 指针的类型是char*int** ptr ;// 指针的类型是int**int(ptr)[3];//指针的类型是 int()[3](2)、指针所指的类型就是把指针声明语句中的指针变量的名字和名字左边的指针声明符去掉,剩下的就是指针所指的类型了。int ptr; // 指针所指的类型是intc
2025-05-13 13:54:55
502
原创 C++ 内存管理
内存分配方式1,从静态存储区分配:全局变量2,从栈上分配:函数内部的局部变量3,从堆上分配:手动 new或者malloc 出来的内存程序的内存空间1,代码区2,全局数据区3,堆区4,栈区**栈区:**由编译器自动分配释放,存放为函数运行的局部变量,函数参数,返回数据,返回地址等。操作方式与数据结构中的类似。**堆区:**一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表**全局数据区:**也叫做静态区,存放全局变量,静态数据。程序结束后由系统释放**文
2025-05-13 13:54:26
321
原创 MVC架构模式详细说明
模型-视图-控制器模式,也称为MVC模式(Model View Controller)。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。它把软件系统分为三个基本部分:模型(Model):负责存储系统的中心数据。视图(View):将信息显示给用户(可以定义多个视图)。控制器(Controller):处理用户输入的信息。
2025-05-13 13:54:10
170
原创 消息 机制
windows消息机制消息事实就是一个数值。我们检查一下消息相关的各个回调函数的原型就会发现,表示消息的那个参数的数据类型是 UINT,也就是无符号的整数类型。不过,我们通常也会发现,消息往往还附带有两个其他类型的数据,一个是 WPARAM 类型的,一个是 LPARAM 类型的,如果算上消息的目标窗口的句柄,那么,一个消息以及相关信息才能够说是比较完整。为什么说是比较呢?看一下 MSG 这个结构的定义就会发现,其实还有另外两个我们不太经常使用的数据,是与一条消息有关系的。typedef struct {
2025-05-13 13:52:32
426
原创 数据库操作
数据库操作语句1、创建数据库,数据库名字例如叫 rhp1CREATE DATABASE rhp1;2、显示数据库SHOW DATABASES;(显示的是所有数据库)3、查看某个数据库的定义的信息:SHOW CREATE DATABASE rhp1;4、删除数据库DROP DATABASE rhp1;5、接下来如果要对数据库进行任何操作,都先使用它,必须先执行这行语句 use +数据库名字USE rhp1;6、有了上一步use语句之后,就可以操作访问我们的数据库啦7、select da
2025-05-13 13:50:45
351
原创 C++11 特性
初始化列表 Initializer List统一的初始化方法 Uniform Initialization可以统一使用大括号{}进行初始化类型推导 Auto Type类型推导对于泛型编程非常方便std::map<int, std::string>::const_iterator itr = m.find(1); (old)auto itr = m.find(1); (new)遍历 foreachstd::vector v = { “a”, “b” };for (auto&am
2025-05-13 13:50:21
285
原创 C/C++多线程
** 线程的基本概念、线程的基本状态及状态之间的关系?**线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。线程有四种状态:新生状态、可运行状态、被阻塞状态、死亡状态线程与进程的区别?1、 线程是进程的一部分,所以线程有的时候被称为是轻权进程或者轻量级进程。2、 一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,
2025-05-13 13:49:58
363
原创 C++设计模式
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。1 工厂模式1.1 简单工厂模式定义:定义了一个创建对象的类,由这个类来封装实例化对象的行为。简单工厂存在的问题与解决方法: 简单工厂模式有一个问
2025-05-13 13:49:36
868
原创 QT 基知识
Qt信号和槽连接方式的选择5个值:自动、直接、队列、阻塞队列、唯一。1,直接连接的大概意思是:信号一旦发射,槽立即执行,并且槽是在信号发射的线程中执行的。2,队列连接的大概意思是:信号发射后当事件循环返回到接收线程时槽函数就执行了,也就是说这种连接方式不是立即触发槽函数的,而是要排队等的,并且是在槽函数的线程中执行。3,自动连接的大概意思是:信号发射对象如果和槽的执行对象在同一个线程,那么将是直连方式,否则就是队列方式。4,阻塞队列方式:在槽函数返回之前槽函数所在的线程都是阻塞的。5,唯一方式:
2025-05-13 13:47:51
637
原创 C++调用7zip库实现压缩
编译好的bit7z.lib:https://github.com/rikyoz/bit7z/releases/tag/v3.2.0 (选择的3.2.0版本的,可以选择最新的)编译好的 7z.dll:https://www.dllme.com/dll/files/7z。lzma源码:https://sparanoid.com/lab/7z/sdk.html。bit7z源码地址:https://github.com/rikyoz/bit7z。
2024-05-15 10:57:09
947
1
原创 python 库总结
原文链接:https://blog.csdn.net/xufive/article/details/102676755 在这个列表中,把模块分成11大类: 基础类数据库接口类网络通讯类音像游戏类GUI类web框架类科学计算类2D/3D类数据处理类机器学习类工具类 针对每一个模块给出了相应的推荐指数,从1颗星到5颗星。这是一个非常主观的判断,仅供参考。 ★☆☆☆☆:较少被用到 ★★☆☆☆:重要但较少被用到, ★★★☆☆:解决特定问题不可或缺 ★★★★☆:主流应用,优先学习 ★★★★★:同类
2021-10-28 17:43:29
182
原创 python IDE环境
python3 IDE可以使用sublime text3下载地址: http://www.sublimetext.com/3配置python编译1、打开Tools > Build System > New Build System2、点击New Build System后,会生成一个空配置文件,在这个配置文件内覆盖配置信息{“cmd”: [“E:/python/python.exe”,"-u","$file"],“file_regex”: “1File "(…?)”, lin
2021-10-28 17:43:17
721
2
原创 Python学习教程(八)
Python 网络编程Python 提供了两个级别访问的网络服务。:1,低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。2,高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。socket()函数Python 中,我们用 socket()函数来创建套接字,语法格式如下:socket.socket([family[, type[, proto]]])Socket
2021-10-28 17:43:09
115
原创 Python学习教程(六)
Python 面向对象面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。实例变量:定义在方法中的变量,只作用于当前
2021-10-28 17:42:52
105
原创 Python学习教程(五)
Python 文件I/Oprintinput打开和关闭文件file 对象做大部分的文件操作。open 函数用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。file object = open(file_name [, access_mode][, buffering])各个参数的细节如下:1,file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。2,access_mode:access_mode决定了打
2021-10-28 17:42:44
205
原创 Python学习教程(四)
Python 常用数据结构Python 字符串Python转义字符Python字符串格式化Python三引号python中三引号可以将复杂的字符串进行复制:python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。三引号的语法是一对连续的单引号或者双引号Unicode 字符串Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单: u’Hello World !’Python 列表(List)序列中的每个元素都分配一个数字 - 它
2021-10-28 17:42:29
1922
原创 Python学习教程(三)
Python 函数abs()abs() 函数返回数字的绝对值。print "abs(-45) : ", abs(-45) 输出45ceil()ceil() 函数返回数字的上入整数。ceil() 方法的语法:import mathmath.ceil( x )import math # 导入 math 模块print ("math.ceil(-45.17) : ", math.ceil(-45.17)) 输出:-45.0cmp(x,y)cmp(x,y) 函数用于比较2个对
2021-10-28 17:42:17
453
原创 Python学习教程(二)
Python 运算符Python算术运算符以下假设变量a为10,变量b为20:Python比较运算符以下假设变量a为10,变量b为20:Python赋值运算符以下假设变量a为10,变量b为20:Python位运算符表中变量 a 为 60,b 为 13。Python逻辑运算符假设变量 a 为 10, b为 20:Python成员运算符Python身份运算符Python运算符优先级Python 条件语句Python程序语言指定任何非0和非空(null)值为true,
2021-10-28 17:42:07
227
原创 Python学习教程(一)
Python官网:http://www.python.org/Python 简介Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 W
2021-10-28 17:41:05
964
原创 TCP粘包问题
一 .两个简单概念长连接与短连接:1.长连接Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.二 .什么时候需要考虑粘包问题?1:如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构,类似于http协议)
2020-07-21 20:30:02
87
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人