- 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.mi... 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.mi...
- 在上一篇博文中详细介绍了SqlTableModle组件是如何使用的,本篇博文将介绍SqlRelationalTable关联表组件,该组件其实是SqlTableModle组件的扩展类,SqlRelationalTable组件可以关联某个主表中的外键,例如将主表中的某个字段与附加表中的特定字段相关联起来,QSqlRelation(关联表名,关联ID,名称)就是用来实现多表之间快速关联的。首先我们... 在上一篇博文中详细介绍了SqlTableModle组件是如何使用的,本篇博文将介绍SqlRelationalTable关联表组件,该组件其实是SqlTableModle组件的扩展类,SqlRelationalTable组件可以关联某个主表中的外键,例如将主表中的某个字段与附加表中的特定字段相关联起来,QSqlRelation(关联表名,关联ID,名称)就是用来实现多表之间快速关联的。首先我们...
- 目录 set/ multiset容器1. set基本概念2.set构造和赋值3.set大小和交换4.set插入和删除5.set容器-查找和统计6.set和multiset的区别7.pair对组创建8.set容器排序9.set存放自定义数据类型set/ multiset容器1. set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉... 目录 set/ multiset容器1. set基本概念2.set构造和赋值3.set大小和交换4.set插入和删除5.set容器-查找和统计6.set和multiset的区别7.pair对组创建8.set容器排序9.set存放自定义数据类型set/ multiset容器1. set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉...
- 目录1.map基本概念简介本质优点map和multimap区别2.map构造和赋值功能描述:函数原型3.map大小和交换功能描述函数原型4 map插入和删除功能描述函数原型5. map查找和统计功能描述函数原型6 map容器排序学习目标主要技术点1.map基本概念简介map中所有元素都是pairpair中第一个元素为key (键值),起到索引作用,第二个元素为value(实值)所有元素都会... 目录1.map基本概念简介本质优点map和multimap区别2.map构造和赋值功能描述:函数原型3.map大小和交换功能描述函数原型4 map插入和删除功能描述函数原型5. map查找和统计功能描述函数原型6 map容器排序学习目标主要技术点1.map基本概念简介map中所有元素都是pairpair中第一个元素为key (键值),起到索引作用,第二个元素为value(实值)所有元素都会...
- JSON是一种简单的轻量级数据交换格式,Qt库为JSON的相关操作提供了完整的类支持,使用JSON解析文件之前需要先通过TextStream流将文件读入到字符串变量内,然后再通过QJsonDocument等库对该JSON格式进行解析,以提取出我们所需字段。首先创建一个解析文件,命名为config.json我们将通过代码依次解析这个JSON文件中的每一个参数,具体解析代码如下:{ "bl... JSON是一种简单的轻量级数据交换格式,Qt库为JSON的相关操作提供了完整的类支持,使用JSON解析文件之前需要先通过TextStream流将文件读入到字符串变量内,然后再通过QJsonDocument等库对该JSON格式进行解析,以提取出我们所需字段。首先创建一个解析文件,命名为config.json我们将通过代码依次解析这个JSON文件中的每一个参数,具体解析代码如下:{ "bl...
- 术语原则:编程时要遵循的指导思想建议:处于代码可读性,性能方面给出的建议。规则:编程中应该执行的编码规则。强制:编程中必须执行的编码规则。禁止:一旦触犯,会引发严重错误的。背景:为说明情况补充的背景知识。编码原则1.【原则】清晰第一:一般情况下,代码的可阅读性高于性能。2.【原则】简洁为美:简洁就是利于理解并且利于实现。3.【原则】选择合适的风格,与代码原有风格一致。如果重构代码时,明智的作... 术语原则:编程时要遵循的指导思想建议:处于代码可读性,性能方面给出的建议。规则:编程中应该执行的编码规则。强制:编程中必须执行的编码规则。禁止:一旦触犯,会引发严重错误的。背景:为说明情况补充的背景知识。编码原则1.【原则】清晰第一:一般情况下,代码的可阅读性高于性能。2.【原则】简洁为美:简洁就是利于理解并且利于实现。3.【原则】选择合适的风格,与代码原有风格一致。如果重构代码时,明智的作...
- 0. 简介作为行为模式的倒数第三章,策略模式在我们编写算法时是非常重要的,它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。 1. 策略模式示意图我们可以清晰的从图中看出策略模式本质上的操作就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型... 0. 简介作为行为模式的倒数第三章,策略模式在我们编写算法时是非常重要的,它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。 1. 策略模式示意图我们可以清晰的从图中看出策略模式本质上的操作就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型...
- 0. 简介迭代器模式是一种行为设计模式, 它可以有效管理数据流动的同时,让用户能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。迭代器通常会提供一个获取集合元素的基本方法。 客户端可不断调用该方法直至它不返回任何内容, 这意味着迭代器已经遍历了所有元素。 1. 迭代器模式示意图迭代器模式的使用方法和c11的迭代器使用方法类似,这是我们会根据我们的需求去建立迭代... 0. 简介迭代器模式是一种行为设计模式, 它可以有效管理数据流动的同时,让用户能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。迭代器通常会提供一个获取集合元素的基本方法。 客户端可不断调用该方法直至它不返回任何内容, 这意味着迭代器已经遍历了所有元素。 1. 迭代器模式示意图迭代器模式的使用方法和c11的迭代器使用方法类似,这是我们会根据我们的需求去建立迭代...
- 0. 简介我们在遇到类似GUI中多种Button点击功能的操作时,我们应该将请求的所有细节 (例如调用的对象、 方法名称和参数列表) 抽取出来组成命令类, 该类中仅包含一个用于触发请求的方法。命令模式就是这样一种行为设计模式, 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 并能根据不同的请求将方法参数化、 延迟请求执行或将其放入队列中, 且能实现可撤销操作。 1. 命令模式示意... 0. 简介我们在遇到类似GUI中多种Button点击功能的操作时,我们应该将请求的所有细节 (例如调用的对象、 方法名称和参数列表) 抽取出来组成命令类, 该类中仅包含一个用于触发请求的方法。命令模式就是这样一种行为设计模式, 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 并能根据不同的请求将方法参数化、 延迟请求执行或将其放入队列中, 且能实现可撤销操作。 1. 命令模式示意...
- 0. 简介外观模式作为我们常用结构模式的最后一节,一些不常用的比如说桥接、享元、代理等,这里等有时间在补充学习吧。下面我将会来继创建模式和结构模式后来讲行为模式。外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这些接口使得这一子系统更加容易使用. 其基本的结构体大致... 0. 简介外观模式作为我们常用结构模式的最后一节,一些不常用的比如说桥接、享元、代理等,这里等有时间在补充学习吧。下面我将会来继创建模式和结构模式后来讲行为模式。外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这些接口使得这一子系统更加容易使用. 其基本的结构体大致...
- 简介Vistual Studio工具实际上是 devenv.exe,而它在编译项目时,输出对话框里输出的实际上就是在命令行中调用devenv.com程序的输出结果因此,如果想用命令行进行自动编译,我们可以直接使用devenv.exe或devenv.com,它们的区别是一个有输出,一个没输出devenv.exe 不输出任何信息devenv.com 输出生成过程信息devenv 的第一个参数通... 简介Vistual Studio工具实际上是 devenv.exe,而它在编译项目时,输出对话框里输出的实际上就是在命令行中调用devenv.com程序的输出结果因此,如果想用命令行进行自动编译,我们可以直接使用devenv.exe或devenv.com,它们的区别是一个有输出,一个没输出devenv.exe 不输出任何信息devenv.com 输出生成过程信息devenv 的第一个参数通...
- 引用 1.概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编不会为引用变量开辟内存空间,它和它引用的变量公用一块内存空间 例1比如说 李逵,在家称为"铁牛", 江湖上人称"黑旋风"这两个称号都是他的 例二#include<iostream>using namespace std;int main(){ int a = 20; int& b = a; b = 20; return ... 引用 1.概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编不会为引用变量开辟内存空间,它和它引用的变量公用一块内存空间 例1比如说 李逵,在家称为"铁牛", 江湖上人称"黑旋风"这两个称号都是他的 例二#include<iostream>using namespace std;int main(){ int a = 20; int& b = a; b = 20; return ...
- 相同点在使用透明窗口时,必须为窗口设置扩展风格WS_EX_LAYERED,有两种方法方法一:CreateWindowEx将原来的创建窗口函数,改为扩展设置,并添加扩展风格标记(原) hWnd = CreateWindowW(szWindowClass, szTitle, WS_POPUP, x, y, width, height, nullptr, nullptr, hInstance, ... 相同点在使用透明窗口时,必须为窗口设置扩展风格WS_EX_LAYERED,有两种方法方法一:CreateWindowEx将原来的创建窗口函数,改为扩展设置,并添加扩展风格标记(原) hWnd = CreateWindowW(szWindowClass, szTitle, WS_POPUP, x, y, width, height, nullptr, nullptr, hInstance, ...
- 事件的由来当鼠标在窗口内移动时,会收到WM_MOUSEMOVE,而如果鼠标在窗口外移动,就会收到 WM_NCMOUSEMOVE 事件。NC(Not ClientRect)表示非客户区域的事件。来看一下消息函数的原型LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)其中 LPARAM ... 事件的由来当鼠标在窗口内移动时,会收到WM_MOUSEMOVE,而如果鼠标在窗口外移动,就会收到 WM_NCMOUSEMOVE 事件。NC(Not ClientRect)表示非客户区域的事件。来看一下消息函数的原型LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)其中 LPARAM ...
- C/C++中的基础数据类型。整型、浮点型、字符型,存储大小、存储范围、精度与映射范围,ASCII表,代码实例。 C/C++中的基础数据类型。整型、浮点型、字符型,存储大小、存储范围、精度与映射范围,ASCII表,代码实例。
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签