- 博客(36)
- 收藏
- 关注
原创 【QT Creator】基本使用
第四步:一直选择“下一步”,直到出现该页面。如果有版本选择可以按照默认版本选择“下一步”,如果出现缺失,无法选择版本的清空,请参考上文【常见问题】中的第二篇文章寻找解决方式。第二步:选择"QT" -> "QT Widgets Application"第一步:选择"文件" -> "New Project"在该ui文件和界面下使用拖拽的方式完成项目部署。第五步:完成所有步骤后会获得一个初始项目文件。第三步:修改项目名称【注意不要写中文】在该页面下,UI界面会通过代码方式展示。方法3:ctrl+R。
2024-09-09 16:13:55 600
原创 【C++】STL初识 - vector例子
算法通过迭代器才能访问容器中所含的元素,迭代器不会暴露容器的内部方式、每个容器都有自己的。①容器:各类数据结构,vector、list、deque、set、map等。:最广泛的数据结构,常用数据结构:数组、链表、树、栈、队列、集合、映射等。②算法:各类常用算法,sort、find、copy、for_each等。⑤适配器(配接器):修饰容器、仿函数、迭代器接口的东西(多参数传递)为了减少大量重复的工作,建立数据结构和算法的一套标准诞生了。常见使用双向迭代器、随机访问迭代器。③迭代器:容器和算法之间的连接。
2024-09-09 11:09:56 727
原创 【LeetCode】一个小组的最大实力值
链接:https://leetcode.cn/problems/maximum-strength-of-a-group/solutions/2896423/yi-ge-xiao-zu-de-zui-da-shi-li-zhi-by-le-o3nd/可以将所有非 0 元素求积,如果乘积为正数,则为最大积。如果乘积为负数,则说明乘积中包含奇数个负数,此时将这个乘积除以最大负数则为最大积。这道题实际上是求所有元素都为整数的数组的子序列的最大积,从最大积的正负性入手。最大,如果这个小组里的学生下标为。
2024-09-03 17:51:33 460 1
原创 【LeetCode】考试最大困扰度
老师想增加学生对自己做出答案的不确定性,方法是 最大化 有 连续相同 结果的题数。(也就是连续出现 true 或者连续出现 false)。道判断题构成的考试,每道题的答案为 true (用。除此以外,还给你一个整数。每次操作中,将问题的正确答案改为。表示)或者 false (用。次操作的情况下,最大 连续。一位老师正在出一场由。
2024-09-02 16:29:23 285
原创 【LeetCode】两数之和
链接:https://leetcode.cn/leetbook/read/leetcode-cookbook/5lu4og/?在数组中找到 2 个数之和等于给定值的数字,结果返回 2 个数字在数组中的下标。要求时间复杂度为 O(n)。作者:JasonChiu。
2024-09-02 14:56:12 464 1
原创 【C++】提高 -- 类模板
解决方案1:将改行代码修改为 #include "Person.cpp",让编译器将.h和.cpp两个文件都阅读一次后再做接下来的解析,但是不建议使用该方式,会使二进制包变大。解决方案2:将.h文件中的内容和.cpp文件中的内容写一个.hpp文件中放在头文件中,声明和实现都在一个文件中【伪份文件编写】②将声明和实现写到同一个文件中,并更改后缀名为.hpp【hpp仅是约定的名字,可改】①当子类继承的父类是一个类模板时,子类在声明的时候要指定出父类中T的类型。在类模板中成员函数在调用时才创建。
2024-08-22 23:18:59 813
原创 【C++】基于多态实现员工管理系统
第一个星号是为了找到数组的首地址,第二个星号是为了解开每一个元素的内容【worker*类似int类型】以下所有类均需要再头文件中声明函数。
2024-08-11 22:11:55 495
原创 【C++】运算符重载
①对于内置的数据类型的表达式的运算符是不可能改变的:int、float、double。按照以上学过的内容,可以自己写成员函数,实现两个对象相加属性后返回新对象。对已有运算符重新定义,赋予另一种功能,适应不同的数据类型。如果我想实现以下代码,按照下面的写法是不能正常运行的。②由于重载后使用的方法像函数的调用,故称为仿函数。编译器起一个通用重载的名称:operator。* 通过成员函数重载 + 号运算符。* 通过全局函数重载 + 号运算符。①默认构造函数:无参,函数体为空。②默认析构函数:无参,函数体为空。
2024-08-02 19:54:46 553
原创 【C++】对象模型和this指针
②在类的非静态成员函数中返回对象本身,可使用return *this。①C++编译器会给每一个空对象分配一个字节的空间,为了区分空对象占内存的位置。用途:①当形参和成员变量同名时,可用this指针区分。1、成员函数后加const后称该函数为常函数。1、声明对象前加const称该对象为常对象。this指针指向被调用的成员函数所属对象。2、常函数内不可以修改成员顺序ing。只有非静态成员变量才属于类的对象上。3、成员属性声明时加关键字。后,在常函数中依然可以修改。②非空类所占内存空间。
2024-07-31 17:26:05 361
原创 【C++】构造函数的深入学习
所有对象共享同一份数据 -- 你改了别人用的就是改过的数据。类中声明,类外初始化 -- 必须要有一个初始值否则没法用。所有对象共享同一个函数,类外访问不到私有静态函数。静态成员函数只能访问静态成员变量。静态成员变量访问权限:在Private作用域下访问,出了这个类不可以访问。分配内存 -- 生成了exe程序,还没有双击运行之前已经分配在全局区中。语法:构造函数():属性1(值1),属性2(值2)...{ }先构造A再构造B,先析构B再析构A(先进后出LIFO)C++提供初始化列表语法用来初始化属性。
2024-07-30 15:39:47 537
原创 【C++】拷贝构造函数深入探讨
* p2先行释放堆区,此时堆区已经被清空,p1接着释放堆区,进行非法操作 **1、使用一个已经创建完毕的对象来初始化一个新对象。** 此时浅拷贝会出现内存重复释放错误 **** 自己实现拷贝构造函数解决该问题 **深拷贝:在堆区重新申请空间,进行拷贝操作。** 可利用深拷贝解决该问题 **2、值传递的方式给函数参数传值。3、以值方式返回局部对象。浅拷贝:简单赋值拷贝操作。
2024-07-17 00:34:04 444
原创 【C++】类与对象 -- 对象特性
* 程序员自己不写以上两个函数,编译器会自动提供以上两个函数 但是内部实现内容为空 **①构造函数:用于创建对象时为对象成员属性赋值,由编译器自动调用,无需手动调用。4、程序对象销毁前会自动调用构造,只会调用一次。1、构造函数不需要有返回值,也不写void。1、析构函数不需要有返回值,也不写void。2、函数名与类名相同,在名称前加 ~3、构造函数不可以有参数,不可以重载。调用方式:括号法、显示法、隐式转换法。3、构造函数可以有参数,可以重载。按参数分为:有参构造和无参构造。二、构造函数的分类及调用。
2024-07-16 23:41:38 338
原创 【C++】类与对象 --封装 & 权限访问
* 设计一个学生类,属性有姓名、学号,可以给姓名学号赋值,显示姓名学号 **语法:class 类名{ 访问权限:属性 / 行为 };意义:将属性和行为作为一个整体 , 加以权限控制。①将所有成员属性设置为私有,可以自己控制读写权限。c++面向对象的三大特性:封装、继承、多态。①public 公共权限。③private 私有权限。** 设计一个圆类 求园的周长 **②对于写权限可以检测数据有效性。struct 默认权限是公共。class 默认权限是私有。四、成员属性设置为私有。
2024-07-13 23:09:17 691
原创 【C++】函数进阶用法
* 如果在调用函数时,我们自己填入参数,函数则会使用传入的参数,而不会使用默认值 **函数重载满足条件:①同一作用域 ②函数名称相同 ③函数参数类型 / 个数 / 顺序不同。** 如果某个位置使用了默认参数,那么从这个位置往后,参数必须有默认值 **** 如果函数声明有默认参数,函数实现就不能有默认参数 **语法: 返回值类型 函数名 (形参 = 默认值){}语法:返回值类型 函数名 (数据类型){ }** 函数返回值不可以作为函数重载条件 **** 声明和实现只能有一个有默认参数 **
2024-07-13 16:37:35 589
原创 【C++】引用的基本语法
* 注意原名和别名的数据类型要一致 **作用:函数传参,可以利用引用让形参修改实参。作用:常量引用主要是修饰形参,防止误操作。** 一旦初始化后,就不可以更改 **作用:引用是可以作为函数的返回值存在的。** 注意:不要返回局部变量引用 **基本语法:数据类型 &别名 = 原名。本质:在c++内部实现是一个指针常量。一、引用:给变量起一个别名。注意事项:引用必须初始化。优点:简化指针修改实参。用法:函数调用作为左值。
2024-07-12 23:49:41 780
原创 【C++】内存分区模型 - 内存四区
* 用栈存储堆区的地址编号,在堆区中存储数据内容 ** 【指针属于局部变量,该方法可解决第三点中的非法操作】④链接:产生“.out"或".exe"可运行文件【分为动态链接(.dll/.so)和静态链接(.lib/.a)】③汇编:将汇编代码“.s”翻译成机器指令“.o”或".obj"目标文件【汇编后的.o文件是纯二进制文件】:节省内存、更新方便,但是动态链接是在程序运行时,每次执行都需要链接,相比静态链接会有一定的性能损失。堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符【delete】
2024-07-12 00:37:39 1807
原创 【C++】二维数组训练(考试成绩统计)
=========================== 回顾完成 测试加载中......=========================#如何获得数组的相关参数首地址:数组名 / 某一行所占内存空间 arr[0] / 某一个元素 arr[0][0]②数据类型 数据名 [行数] [列数] = { (数据1,数据2),(数据3,数据4)} //更加直观。③数据类型 数据名 [行数] [列数] = { 数据1 ,数据2,数据3,数据4 }每一行可以计算出每一个人的总分,每一列可以计算出每一科的平均分。
2024-07-02 20:00:04 298
原创 【C++】一维数组训练(小猪称体重3.0 / 数组元组逆序)
=========================== 回顾完成 测试加载中......=========================可以看到图中黄色部分,是计算机的存储规则,数组会从0号位开始存储,所以存储6个数组值的存储范围是arr[0]~arr[5]2、如果我在定义数组时长度写了10,但是后面的值我只添加了3个,会出现什么情况?②数据类型 数组名[数组长度] = { 值1,值2,值3....}③数据类型 数组名[ ] = { 值1,值2,值3....}#如何获得数组相关参数的长度。
2024-07-02 17:29:50 663
原创 【C++】九九乘法表
相信大家这一张图,可以勾起大家久远的记忆,一一得一、一二得二...对于这种按顺序输出的问题,我们不难想到可以利用for循环语句实现。------ 思考一下 动手做一做 再往下翻翻看------那我们现在将这个表复刻在我们的电脑上呢?题目:利用for语句输出九九乘法表。数字按(1~9)顺序分布。数字按(1~9)顺序分布。数字(a)都是一样的,数字(b)都是一样的,
2024-07-01 20:06:17 648
原创 【C++】逢“7”过--内附2.0版本
如果这两个数字之和不是7的倍数,或者没有含有7,那么玩家就要先喊出那个数字,然后给下一个玩家出题;对于情况②,也可以通过取余方式获取其个位、十位两个位置的数字,并与7做比较,看一下是否含有7这个数字;对于规则而言,以上两种情况出现任意一次,就需要喊“过”,所以我们可以用到 ( || )或运算。对于情况①,我们可以通过 (%)取余运算作判断,如果这个数字取余后为0,那它就是7。那作为一名小小码农,可以做一个电子小抄,保证我们不用受罚~从1开始依次每个人喊一个数字,如果数字含有7或者是7的倍数,就必须喊“过”
2024-07-01 19:29:38 548
原创 【C++】水仙花数
因为在c++运算法则中,两个整形相除结果也为整形,所以153/10 = 15 而不是 15.3。个位:153 % 10 = 3 【因为153➗10 =15 余 3】1、为什么(153 / 10)% 10 = 5,而不是 5.3。3、判断 百位^3 + 十位^3 + 个位^3 = 三位数本身。------ 思考一下 动手做一做 再往下翻翻看------题目:利用do..while语句求出所有三位数的水仙花数。十位:(153 / 10)% 10 = 5。2、获取每个三位数的百位、十位、个位。
2024-07-01 18:18:36 348
原创 【C++】猜数字
题目:系统随机生成一个1到100的数,用户输入数字进行猜测,系统判断后告诉玩家当前数字过大或过小,如果猜中恭喜玩家,并退出当前游戏。为了增加游戏的趣味性,可限制玩家猜测次数。因为通过rand()% 100取得的是范围0~99的数,距离我们需要的1~100区间的数刚好差1,所以需要+1。如果一直猜下去,总会猜对的,那这个游戏的趣味性就低了很多,那我们如何限定猜测次数呢?------ 思考一下 动手做一做 再往下翻翻看------------ 思考一下 动手做一做 再往下翻翻看------
2024-06-30 23:40:50 373
原创 【C++】电影评分
----- 思考一下 动手做一做 再往下翻翻看------题目:根据用户对于电影的评分,输出该评分对应的等级。如果分数等于 x (某值):输出语句A;如果分数等于 y (某值):输出语句B;如果分数等于 z (某值):输出语句C;类似题目:跟据输入分数,判定该学生的成绩评级等。Switch语句的中心思想:执行多条件分支语句。本次解题使用Switch语句进行判断。否则:输出默认内容;根据提示,用户输入一个分数。获取并判断输入的这个分数值。
2024-06-30 21:50:01 391
原创 【C++】三只小猪称体重2.0
打完我才反应过来,我定义的变量不能作为常量放入case中,接着我试图将已经接收到数据的变量a转换成常量,但是遗憾的是我还没找到有什么方法(可能后续我学深入一点会找到方法吧,如果你有好的建议也可以在评论区告诉我!对比之下,三目运算符虽然在比较的代码上会稍显少一点,但是在整体阅读和后续输出方面仍存在不少问题,会影响后续阅读维护什么的;所以我觉得,如果比较的时候数据只有两个且输出的类型是和比较数据的类型是一致的时候,选择三目运算符会好一点,不然还是用回if语句比较吧。表达式为true,输出结果A;
2024-06-30 00:21:32 149
原创 【C++】三只小猪称体重
iostream为内置类型对象提供了输入输出支持,同时也支持文件的输入输出,类的设计者可以通过对iostream库的扩展,来支持自定义类型的输入输出操作。通常在终端运行时,会弹出一个小窗库显示运行结果,如果不希望运行结果一闪而过的话,需要调用system系统命令中的pause函数,这样在运行到此处时,会显示“Press any key to continue . . .” 也就是 “按任意键继续...”。------ 思考一下 动手做一做 再往下翻翻看------如果A比较大,则输出A。
2024-06-29 23:16:46 632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人