- 本篇文章结合王道课程及自己对树的理解,希望对你有所帮助目录一、树是什么? 1.树的概念2.结点的分类3.树的其他相关概念 4.数的存储结构5、树的常考性质二、二叉树1.如何引入二叉树 2.相互转换 (1)树转换二叉树(2)二叉树还原为树(3) 森林转化为二叉树3.二叉树概念4.二叉树的五种状态5.几种特殊的二叉树6.二叉树的性质7.完全二叉树的常考性质8.二叉树的存储一、树是什么? 1.... 本篇文章结合王道课程及自己对树的理解,希望对你有所帮助目录一、树是什么? 1.树的概念2.结点的分类3.树的其他相关概念 4.数的存储结构5、树的常考性质二、二叉树1.如何引入二叉树 2.相互转换 (1)树转换二叉树(2)二叉树还原为树(3) 森林转化为二叉树3.二叉树概念4.二叉树的五种状态5.几种特殊的二叉树6.二叉树的性质7.完全二叉树的常考性质8.二叉树的存储一、树是什么? 1....
- QThread库是QT中提供的跨平台多线程实现方案,使用时需要继承QThread这个基类,并重写实现内部的Run方法,由于该库是基本库,默认依赖于QtCore.dll这个基础模块,在使用时无需引入其他模块.实现简单多线程: QThread库提供了跨平台的多线程管理方案,通常一个QThread对象管理一个线程,在使用是需要从QThread类继承并重写内部的Run方法,并在Run方法内部实现多线... QThread库是QT中提供的跨平台多线程实现方案,使用时需要继承QThread这个基类,并重写实现内部的Run方法,由于该库是基本库,默认依赖于QtCore.dll这个基础模块,在使用时无需引入其他模块.实现简单多线程: QThread库提供了跨平台的多线程管理方案,通常一个QThread对象管理一个线程,在使用是需要从QThread类继承并重写内部的Run方法,并在Run方法内部实现多线...
- QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts 组件基于GraphicsView模式实现,其核心是QChartView和QChart的二次封装版。在使用绘图模块时需要在pro文件中包含QT += charts来引入绘图类库。然后还需在头文件中定义QT_CHARTS_USE_NAMESPACE宏,这样才可以正常的使用绘图功能。一般情况下我们会在... QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts 组件基于GraphicsView模式实现,其核心是QChartView和QChart的二次封装版。在使用绘图模块时需要在pro文件中包含QT += charts来引入绘图类库。然后还需在头文件中定义QT_CHARTS_USE_NAMESPACE宏,这样才可以正常的使用绘图功能。一般情况下我们会在...
- ToolBar工具栏在所有窗体应用程序中都广泛被使用,使用ToolBar可以很好的规范菜单功能分类,用户可根据菜单栏来选择不同的功能,Qt中默认自带ToolBar组件,当我们以默认方式创建窗体时,ToolBar就被加入到了窗体中,一般是以QToolBar的方式存在于对象菜单栏,如下所示。QToolBar组件在开发中我遇到了以下这些功能,基本上可以应对大部分开发需求了,这里就做一个总结。顶部工... ToolBar工具栏在所有窗体应用程序中都广泛被使用,使用ToolBar可以很好的规范菜单功能分类,用户可根据菜单栏来选择不同的功能,Qt中默认自带ToolBar组件,当我们以默认方式创建窗体时,ToolBar就被加入到了窗体中,一般是以QToolBar的方式存在于对象菜单栏,如下所示。QToolBar组件在开发中我遇到了以下这些功能,基本上可以应对大部分开发需求了,这里就做一个总结。顶部工...
- MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行,如下我们将具体介绍该组件的常用使用技巧。MDI窗体控件类似于画布,该控件只具备展示窗体的功能,无法实现生成窗体,所以我们需要在项目中手动增加自定义的Dialog对话框,并对... MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行,如下我们将具体介绍该组件的常用使用技巧。MDI窗体控件类似于画布,该控件只具备展示窗体的功能,无法实现生成窗体,所以我们需要在项目中手动增加自定义的Dialog对话框,并对...
- QStandardItemModel 是标准的以项数据为单位的基于M/V模型的一种标准数据管理方式,Model/View 是Qt中的一种数据编排结构,其中Model代表模型,View代表视图,视图是显示和编辑数据的界面组件,而模型则是视图与原始数据之间的接口,通常该类结构都是用在数据库中较多,例如模型结构负责读取或写入数据库,视图结构则负责展示数据,其条理清晰,编写代码便于维护。QStand... QStandardItemModel 是标准的以项数据为单位的基于M/V模型的一种标准数据管理方式,Model/View 是Qt中的一种数据编排结构,其中Model代表模型,View代表视图,视图是显示和编辑数据的界面组件,而模型则是视图与原始数据之间的接口,通常该类结构都是用在数据库中较多,例如模型结构负责读取或写入数据库,视图结构则负责展示数据,其条理清晰,编写代码便于维护。QStand...
- @[toc] 一、引入list的本质是带头双向循环链表,对于带头双向循环链表我们可是比较熟悉的了。本文只对list的一些常用接口进行说明,对于其他一些接口可自行查看文档。 二、构造void Test(){ list<int> lt;//无参构造 list<int> lt1(5, 1);//n个val构造 list<int> lt2(lt1);//拷贝构造 string s("hello wo... @[toc] 一、引入list的本质是带头双向循环链表,对于带头双向循环链表我们可是比较熟悉的了。本文只对list的一些常用接口进行说明,对于其他一些接口可自行查看文档。 二、构造void Test(){ list<int> lt;//无参构造 list<int> lt1(5, 1);//n个val构造 list<int> lt2(lt1);//拷贝构造 string s("hello wo...
- @[toc] 一、前言学习完string类之后,我们在来学习vector难度并没有之前那么高,更加容易理解一些接口vector是表示可变大小数组的序列容器 ,本质讲,vector使用动态分配数组来存储它的元素。同理,对于vector的使用,我们也要学会去看文档:vector官方文档本文重点只介绍一些常用的接口 二、构造函数构造函数的具体介绍直接前往官网查看文档即可,这里只做简单介绍:(con... @[toc] 一、前言学习完string类之后,我们在来学习vector难度并没有之前那么高,更加容易理解一些接口vector是表示可变大小数组的序列容器 ,本质讲,vector使用动态分配数组来存储它的元素。同理,对于vector的使用,我们也要学会去看文档:vector官方文档本文重点只介绍一些常用的接口 二、构造函数构造函数的具体介绍直接前往官网查看文档即可,这里只做简单介绍:(con...
- @[toc] 一、string类的构造、拷贝构造、赋值重载以及析构 1.构造函数分为无参和带参这两种构造函数。无参构造函数默认构造空字符串"",所以我们只需要给一个缺省值即可。string(const char* str = ""){ _size = strlen(str); _capacity = _size; _str = new char[_capacity + 1]... @[toc] 一、string类的构造、拷贝构造、赋值重载以及析构 1.构造函数分为无参和带参这两种构造函数。无参构造函数默认构造空字符串"",所以我们只需要给一个缺省值即可。string(const char* str = ""){ _size = strlen(str); _capacity = _size; _str = new char[_capacity + 1]...
- ⭐️前面的话⭐️本篇文章将介绍一种经常使用的数据结构——字典树,它又称Tire树,前缀树,字典树,顾名思义,是关于“字典”的一棵树。这个词典中的每个“单词”就是从根节点出发一直到某一个目标节点的路径,路径中每条边的字母连起来就是一个单词,今天我们就来种下这样的一棵树,它在竞赛和面试笔试都会经常用到。 1.字典树概述 1.1什么是字典树字典树,又被称为Tire树,或者称为前缀树,常常用于算法竞... ⭐️前面的话⭐️本篇文章将介绍一种经常使用的数据结构——字典树,它又称Tire树,前缀树,字典树,顾名思义,是关于“字典”的一棵树。这个词典中的每个“单词”就是从根节点出发一直到某一个目标节点的路径,路径中每条边的字母连起来就是一个单词,今天我们就来种下这样的一棵树,它在竞赛和面试笔试都会经常用到。 1.字典树概述 1.1什么是字典树字典树,又被称为Tire树,或者称为前缀树,常常用于算法竞...
- 1、QMainWindowQMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个停靠部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。选择父类QMainWindow 1.1 菜单栏一个主窗口最多只有==... 1、QMainWindowQMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个停靠部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。选择父类QMainWindow 1.1 菜单栏一个主窗口最多只有==...
- 函数原型SetLayeredWindowAttributes 用来设置分层窗口的透明度BOOL SetLayeredWindowAttributes( HWND hwnd, // 指定分层窗口句柄 COLORREF crKey, // 指定需要透明的背景颜色值,可用RGB()宏 BYTE bAlpha, // 设置透明度,0表示完全透明,255表示不透明 DWORD dwFlags // ... 函数原型SetLayeredWindowAttributes 用来设置分层窗口的透明度BOOL SetLayeredWindowAttributes( HWND hwnd, // 指定分层窗口句柄 COLORREF crKey, // 指定需要透明的背景颜色值,可用RGB()宏 BYTE bAlpha, // 设置透明度,0表示完全透明,255表示不透明 DWORD dwFlags // ...
- 方案一:DS_CENTER(行不通)原理:通过在注册类的时候,将起风格属性设置为居中,来使窗体居中实验结果:失败 修改WNDCLASSEXW的style查了很多种方案后,有人说最简单的方法,是将WNDCLASSEXW的风格添加上DS_CENTER,就能实现居中,修改后的代码如下。经过测试发现,依旧无法居中ATOM MyRegisterClass(HINSTANCE hInstance){ ... 方案一:DS_CENTER(行不通)原理:通过在注册类的时候,将起风格属性设置为居中,来使窗体居中实验结果:失败 修改WNDCLASSEXW的style查了很多种方案后,有人说最简单的方法,是将WNDCLASSEXW的风格添加上DS_CENTER,就能实现居中,修改后的代码如下。经过测试发现,依旧无法居中ATOM MyRegisterClass(HINSTANCE hInstance){ ...
- 函数介绍Window 支持使用 SetWindowRgn 创建各种形状的透明窗口,函数原型如下int SetWindowRgn( HWND hWnd, // 要调整的窗口的句柄 HRGN hRgn, // 区域的句柄 BOOL bRedraw // 是否立即重画窗口); //返回非0值如果成功,否则返回0Win32 API提供了许多现成的函数可以调用。只不过简比较简单的方法只能创建... 函数介绍Window 支持使用 SetWindowRgn 创建各种形状的透明窗口,函数原型如下int SetWindowRgn( HWND hWnd, // 要调整的窗口的句柄 HRGN hRgn, // 区域的句柄 BOOL bRedraw // 是否立即重画窗口); //返回非0值如果成功,否则返回0Win32 API提供了许多现成的函数可以调用。只不过简比较简单的方法只能创建...
- @[toc] 一、泛型编程如何实现一个通用的交换函数呢? 我们可以针对不同的数据类型写出不同的交换函数void Swap(int& left, int& right){ int temp = left; left = right; right = temp;}void Swap(double& left, double& right){ double temp = ... @[toc] 一、泛型编程如何实现一个通用的交换函数呢? 我们可以针对不同的数据类型写出不同的交换函数void Swap(int& left, int& right){ int temp = left; left = right; right = temp;}void Swap(double& left, double& right){ double temp = ...
上滑加载中