自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mrover的学习博客

穷则独善其身,达则兼济天下

  • 博客(25)
  • 收藏
  • 关注

原创 Qt中QCheckBox的三种状态设置

状态:partiallyChecked对应qss中的indeterminate 伪状态。状态:unchecked。首先启用QCheckbox的tristate属性。状态:checked。

2024-03-13 12:39:53 442

原创 C++浮点数保留n位小数(保留n位精度)

例:TruncRealNum()模板函数 对实数进行截断保留n位小数。输入: double d = 3.14159265358979;输出: d = TruncRealNum(d,5);例子: main函数。

2024-03-06 11:13:11 329

原创 【Qt笔记】QSS中常见的伪状态

QSS中常见的伪状态伪状态描述:active当组件处于一个活动的窗口时,此状态为真:adjoins-itemQTreeView::brance与一个条目相邻时,此状态为真::alternate当QAbstractItemView的alternatingRowColors属性为true,绘制交替的行时此状态为真:bottom组件处于底部,例如QTabBar的表头位于底部:checked组件被勾选,例如QAbstractButton的checked属性为t

2024-02-17 11:01:01 434

原创 【Qt笔记】QSS中常用的子控件

QSS中常用的子控件子控件名称说明::branchQTreeView的分支指示器::chunkQProgressBar的进度显示块::close-buttonQDockWidgte或QTabBar页面的关闭按钮::down-arrowQComboBox、QHeaderView(排序指示器)、QScrollBar或QSpinBox的下拉箭头::down-buttonQScrollBar或QSpinBox的向下按钮::float-buttonQCo

2024-02-17 09:59:27 672

原创 核对表:循环CHECKLIST:Loops

核对表:循环CHECKLIST:Loops循环的选择和创建 在合适的情况下用while循环取代for循环了吗? 循环是由内到外创建的吗?进入循环 是从循环头部进入的循环吗? 初始化代码是直接位于循环前面吗? 循环是无限循环或者事件循环吗?它的结构是否清晰? 避免使用像for i = 1 to 99999这样的代码吗? 如果这是一个C++、C或者Java中的for循环,那么把循环头留给循环控制代码了吗?循环的内部 循环是否用了“{}”或其等价物来括上循环体,以防止因修改不当而出

2024-01-29 16:29:25 280

原创 核对表:使用条件语句CHECKLIST:Using Conditionals

核对表:使用条件语句CHECKLIST:Using Conditionalsif-then语句 代码的正常路径清晰吗? if-then 测试对等量分支的处理方式正确吗? 确保不要用“>”代替“>=”或用“<”代替“<=”。 使用了else子句并加以说明吗? else子句用得对吗? 用对了if和else子句吗,即没把它们用反吗? 需要执行的正常情况是位于if而不是else子句里吗?if-then-else语句串 把复杂的判断封装到布尔函数调用里了吗? 先判断最

2024-01-29 16:12:04 766

原创 核对表:基本数据类型CHECKLIST:Fundmental Data

核对表:基本数据类型CHECKLIST:Fundmental Data数值概论 代码中避免使用神秘数值吗? 代码考虑了除零错误吗? 类型转换很明显吗? 如果在一条语句中存在两个不同类型的变量,那么这条语句会像你期望的那样求值吗? 代码避免了混合类型比较吗? 程序编译时没有警告信息吗?整数 使用整数除法的表达式能按预期的那样工作吗? 整数表达式避免整数溢出问题吗?浮点数 代码避免了对数量级和差巨大的数字做加减运算吗? 代码系统地阻止了舍入错误的发生吗? 代码避免对浮点数

2024-01-17 19:48:00 454

原创 Qt6学习笔记:对象树

创建一个QObject对象时若设置一个父对象,它就会被添加到父对象的子对象列表里,一个父对象被删除时,其全部的子对象都会自动删除。用于在对象的子对象中查找可以转换为类型T的子对象,可以指定对象名称,也可以使用正则表达式(QRegularExpression)来匹配对象名称。参数options表示查找方式,默认在子对象中递归查找,也就是会查找子对象的子对象。对于界面上的容器类组件,容器内的所有组件(包括内部的布局组件)都是其子对象。可以通过children()函数来访问组件内的所有的子对象。

2024-01-04 16:11:21 816

原创 Qt6学习笔记:Qt元对象系统MOS(Meta-object system)

构建项目时,MOC会读取C++源文件,当发现类的定义里有Q_OBJECT宏时,它就会为这个类生成另一个包含元对象支持代码的C++源文件,这个生成的源文件连同类的实现文件一起被 标准C++编译器编译和连接。QObject类是所有使用元对象系统的类的基类,也就是说,如果一个类的父类或上层类是QObject,它就可以使用信号与槽、属性等特性。这是类的静态变量,不是函数,存储了类的元对象。按照对象名称,查找可被转换为类型T的子对象。返回符合名称和类型条件的子对象列表。返回这个对象的元对象。返回所有动态属性名称。

2024-01-03 19:05:19 767

原创 核对表:防御式编程CHECKLIST:Defensive Programming

核对表:防御式编程CHECKLIST:Defensive Programming一般事宜 子程序是否保护自己免遭有害输入数据的破坏? 你用断言来说明编程假定吗?其中包括了前条件和后条件吗? 断言是否只是用来说明从不应该发生的情况? 你是否在架构或高层设计中规定了组特定的错误处理技术? 你是否在架构或高层设计中规定了是让错误倾向于健壮性还是正确性? 你是否建立了隔栏来遏制错误可能造成的破坏?是否减少了其他需要关注错误处理的代码的数量? 代码中用到辅助调试的代码了吗? 如果需要启用或禁用添加

2023-12-31 21:25:18 528

原创 核对表:高质量的子程序CHECKLIST:High-Quality Routines

核对表:高质量的子程序CHECKLIST:High-Quality Routines大局事项 创建子程序的理由充分吗? 一个子程序所有适于单独提出的部分是不是已经被提出到单独的子程序中了? 过程的名字中是否用了强烈、清晰的“动词+宾语”词组?函数的名字是否描述了其返回值? 子程序的名字是否描述了它所做的全部事情? 是否给常用的操作建立了命名规则? 子程序是否具有强烈的功能上的内聚性?即它是否做且只做了一件事,并且把它做得很好? 子程序之间是否有较松的耦合?子程序与其他子程序之间的连接是否是

2023-12-29 21:42:35 446

原创 类的质量:核对表CHECKLIST:Class Quality

类的质量:核对表CHECKLIST:Class Quality抽象数据类型 你是否把程序中的类都看做是抽象数据类型了?是否从这个角度评估它们的接口了?抽象 类是否有一个中心目的? 类的命名是否恰当?其名字是否表达了其中心目的? 类的接口是否展现了一致的抽象? 类的接口是否能让人清楚明白地知道该如何用它? 类的接口是否足够抽象,使你能不必顾虑它是如何实现其服务的?你能把类看做黑盒子吗? 类提供的服务是否足够完整,能让其他类无须动用其内部数据? 是否已从类中除去无关信息? 是否考虑过

2023-12-27 18:50:01 378

原创 李毓佩《数学历险记》---裂项法简算分数

计算:11∗2+12∗3+13∗4+ ...+198∗99+199∗100\frac{1}{1 * 2} + \frac{1}{2 * 3}+ \frac{1}{3 *4}+ ...+\frac{1}{98 * 99} + \frac{1}{99 * 100}1∗21​+2∗31​+3∗41​+ ...+98∗991​+99∗1001​11∗2+12∗3+13∗4+ ...+198∗99+199∗100\frac{1}{1 * 2} + \frac{1}{2 * 3}+ \frac{1}{3 *4}+ .

2023-12-24 22:28:24 997

原创 主要的构建实践核对表

主要的构建实践核对表Checklist:MajorConstructionPractices编码 你有没有确定,多少设计工作将要预先进行,多少设计工作在键盘上进行(在编写代码的同时)? 你有没有规定诸如名称、注释、代码格式等“编码约定”? 你有没有规定特定的由软件架构确定的编码实践,比如如何处理错误条件、如何处理安全性事项、对于类接口有哪些约定、可重用代码遵循哪些标准、在编码时考虑多少性能因素等? 你有没有找到自已在技术浪潮中的位置,并相应调整自己的措施?如果必要,你是否知道如何“深入一种语言去

2023-12-23 16:39:52 306

原创 【无标题】

C++规定了虚函数的行为,但将实现方法留给我编译器作者,通常编译器处理虚函数的方法是,给每个对象添加一具隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针。这种数组称为。虚函数表中存储了为类对象进行声明的虚函数的地址。例如,基类对象包含一个指针,该指针指向基类中所有虚函数的地址表。派生类对象将包含一个指向独立地址表的指针。

2023-12-22 21:53:05 335

原创 架构核对表Checklist:Architecture

以下是一份问题列表,优秀的架构应该关注这些问题。这张核对表的意图并非用做一份有关如何架构的完全指南,而是作为一种实用的评估手段。这张核对表可以用做你自已的核对表的出发点,如果你从事的是非正式项目,那么你会发现其中某些条款甚至都不用去想。如果你从事的是更大型的项目,那么大多数条款都会是很有用的。

2023-12-21 17:15:56 483

原创 需求核对表Checklist:Requirements

这张包含一系列的问题–问问自己项目的需求工作做得如何。在开始构建之前,用这份列表做一次“心智健全”检查。并不是核对表中所有的问题都适用于你的项目。如果你做的是一个非正式项目,那么你会发现有些东西根本就不需要考虑。你还会发现一些问题你需要考虑,但不需要做出正式的回答。如果你在做一个大型的项目,你也许就要逐条考虑了。

2023-12-20 21:35:02 427

原创 李毓佩《数学历险记》———牛吃草问题(牛顿问题)

把10头牛22天吃的总量与16头牛10天吃的总量相比较,得到的10×22-16×10=60,类似于60头牛1天吃的草,平均分到(22-10)天里,便得到5头牛一天吃的草,也就是每天新长出的草。求出了这个条件,把所有头牛分成两部分来研究,用其中一部分(5头)吃掉新长出的草,用另外一部分吃掉原有的草,即可求出全部头牛吃的天数。这片青草供给10头牛吃,可以吃22天,或者供给16头牛吃,可以吃10天,期间一直有草生长。如果可供24头牛吃6天,或者可供20头牛吃10天,那么可供19头牛吃几天?

2023-12-20 15:48:26 1051

原创 Leecode 809.情感丰富的文字 ----双指针

例如,以 "hello" 为例,我们可以对字母组 "o" 扩张得到 "hellooo",但是无法以同样的方法得到 "helloo" 因为字母组 "oo" 长度小于 3。我们将相邻字母都相同的一串字符定义为相同字母组,例如:"h", "eee", "ll", "ooo"。我们不能通过扩张 "helo" 来得到 "heeellooo" 因为 "ll" 的长度小于 3。我们能通过扩张 "hello" 的 "e" 和 "o" 来得到 "heeellooo"。输入一组查询单词,输出其中可扩张的单词数量。

2023-12-17 13:21:34 599

原创 李毓佩 数学历险记 --- 比赛报数

分析: 谋划是指为一件事出谋划策,使效率最高,或者在一种有规则的游戏中,提出取胜对策。依次类推,甲必须先报到179、170、161.......即必须报到第(9*m + 8)个数,m为自然数由0开始。,即公差为9的等差数列的第m项。如果m取从1开始的整数,那么甲应抢先报到第(9 * (m - 1) + 8)即(9*m - 1)个数时(m为整数),可以保证获得胜利。每次报的都是不超过8的自然数,即可以报上一人报的数字加上1~8后的整数,所报的数字逐次增大,看谁正好报到数字188谁就获得胜利。

2023-12-16 22:52:08 409

原创 C++Prime Plus 学习笔记-----在构造函数中使用new的注意事项

具体的说,该方法应完成这些操作:检查自我赋值的情况,释放成员指针以前指向的内存,复制 数据而不仅仅是数据的地址,并返加一个指向调用对象的引用。具体的说,复制构造函数应分配足够的空间来存储复制的数据,并复制数据,而不仅仅是数据的地址,还应该更新所有受影响的静态成员。应当定义一个赋值运算符,通过深度复制将一个对象复制给另一个对象。

2023-12-15 20:33:33 331

原创 C++Plus Prime笔记----名称空间

这样做的目的是减少名称冲突,尤其当程序非常大,并使用多个厂商的代码时。可以通过使用作用域解析运算符、using声明或using编译指令,来使名称空间中的标识符可用。名称空间可以是全局的,也可以位于另一个名称空间中,但不能位于代码块中。因此,在默认情况下,在名称空间中声明的名称的链接性为外部的(除非它引用的常量)。除了用户定义的名称空间外,还存在另一个名称空间------全局名称空间。它对应于文件级声明区域,因此全局变量现在被描述为位于全局名称空间中。使用名称空间的主旨是简化大型编程项目的管理工作。

2023-12-14 21:30:00 340

原创 Leecode刷题笔记---1218.最长定差子序列

输入:arr = [1,5,7,8,5,3,4,2,1], difference = -2。中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference。输入:arr = [1,2,3,4], difference = 1。输入:arr = [1,3,5,7], difference = 1。子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除。解释:最长的等差子序列是 [1,2,3,4]。解释:最长的等差子序列是 [7,5,3,1]。解释:最长的等差子序列是任意单个元素。

2023-12-13 09:05:49 581

原创 C++ Prime Plus 笔记 智能指针

以及包含指针的STL容器,很多STL算法都支持复制和赋值操作,这些操作可用于shared_ptr,但不能用于unique_ptr(编译器发出警告)和auto_ptr(行为不确定)。如果函数使用new分配内存,并返回指向该内存的指针,将其返回类型声明为unique_ptr是不错的选择。所有的指针类都有一个explicit构造函数,该构造函数将指针作为参数,因此不会隐式地将普通指针转换为智能指针。示例:演示了三种智能指针的简单用法,其中每个智能指针都放在一个代码块中,离开代码块时,指针将过期。

2023-12-11 16:46:00 299

原创 C++ map容器遍历

c++ map 容器遍历

2023-12-10 19:30:27 330

Leecode1218.最长定差子序列

用例文件示例

2023-12-13

空空如也

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

TA关注的人

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