自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 14.C++力扣刷题258

题目:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。示例 1:输入: num = 38输出: 2解释: 各位相加的过程为:38 --> 3 + 8 --> 1111 --> 1 + 1 --> 2由于 2 是一位数,所以返回 2。示例 2:输入: num = 0输出: 0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-digits著作权归领扣网络所有。商业转

2022-03-03 14:17:51 220

原创 13.C++力扣刷题283

题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代

2022-03-03 09:14:18 202

原创 12.C++力扣刷题665

题目:给你一个长度为 n 的整数数组 nums ,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个 4 变成 1 来使得它成为一个非递减数列。示例 2:输入: nums = [4,2,1]输出: false解释: 你不

2022-03-02 09:07:16 667

原创 11.C++力扣刷题453

题目:给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。示例 1:输入:nums = [1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]示例 2:输入:nums = [1,1,1]输出:0提示:n == nums.length1 <= nums.length <= 10

2022-03-01 10:11:16 413

原创 C++文件操作部分

文件操作程序运行时所产生的数据都属于临时数据,程序一旦运行结束就会被释放。通过文件可以将数据持久化。C++中对文件操作需要包含头文件<fstream>。文件类型分为文本文件和二进制文件。文本文件:以文本的ASCII码形式存储在计算机中。二进制文件:以文本的二进制形式存储在计算机中,用户一般不能直接读懂。操作文件的三大类:ofstream(写操作), ifstream(读操作),fstream(读写操作)。...

2022-01-11 09:52:03 1909

原创 C++类和对象——多态部分

多态多态基本概念和原理剖析多态案例1 计算器类纯虚函数和抽象类多态案例2 制作饮品虚析构和纯虚析构多态案例3 电脑组装多态基本概念和原理剖析多态:多态是C++面向对象的三大特性之一。多态分为静态多态和动态多态。静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态:派生类和虚函数实现运行时多态。区别:静态多态的函数地址早绑定,编译阶段确定函数地址。动态多态的函数地址晚绑定,运行阶段确定函数地址。#include <iostream>using namespace s

2021-12-21 22:19:41 812 1

原创 C++类和对象——继承部分

继承基本语法继承方式继承中的对象模型基本语法继承:下级成员除了拥有上一级的共性,还有自身的特点。优点在于利用继承技术可以减少代码重复。语法:class 子类:继承方式 父类子类也称为派生类父类也称为基类#include<iostream>using namespace std;//继承实现页面 继承优点:减少重复代码 //公共页面类class Basepage {public: void header() { cout << "这是公共头部,

2021-12-20 21:27:01 700

原创 C++类和对象——运算符重载

运算符重载加号运算符重载左移运算符重载递增运算符重载递减运算符重载运算符重载:对已有的运算符进行重新定义,赋予其另一种功能,以适应不同的数据类型。加号运算符重载加号运算符重载:实现两个自定义数据类型的相加操作。#include<iostream>using namespace std;//加号运算符重载class Person {public: /*1、通过成员函数重载加号 Person operator+(Person & p) { Person temp;

2021-12-16 15:15:26 1345

原创 C++类和对象——友元部分

友元全局函数做友元类做友元成员函数做友元在C++程序中,有些私有属性也想让类外特殊的一些函数或者类进行访问,就可以使用友元技术。友元的目的是让一个函数或者类访问另一个类中的私有成员。友元的关键字为friend。全局函数做友元#include<iostream>using namespace std;#include<string>class Building { //bestfriend全局函数现在是Building类的友元,可以访问Building中的私有成员

2021-12-10 22:04:39 383

原创 C++类和对象——对象特性部分

对象特性构造函数和析构函数C++中的面向对象来源于生活,每个对象都会有初始设置以及对象销毁前的清理数据的设置。就像生活中电子产品的出厂设置以及某天更换之前需将自己的私人信息删除来保证个人数据的安全。构造函数和析构函数C++利用构造函数解决变量因为没有初始化而导致未知后果的问题。利用析构函数解决使用完变量后未清理而导致的安全问题。这两个函数会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制程序员做的,因此若程序员不提供构造和析构,编译器会提供。但是 由编译器提供的构造函数

2021-12-03 23:56:43 224

原创 C++类和对象——封装部分

类和对象C++面向对象的三大特性为 :封装、继承、多态。C++认为万事万物皆为对象,对象上有其属性和行为。例如人可以看作一个对象,属性有姓名、年龄、性别、身高、体重等。具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类。属性和行为封装:封装是C++面向对象的三大特性之一。封装的意义:将属性和行为作为一个整体 ,表现生活中的事物。将属性和行为加以权限控制。案例设计案例1 建立一个圆类,并求圆的周长。案例2 设计一个学生类,属性有姓名和学号。可以给姓名和学号赋值,可以显示学生的姓名和学

2021-12-02 23:31:11 1202

原创 C++函数高级部分

函数高级函数默认参数函数重载函数默认参数函数默认参数:在C++中函数的形参列表中的形参是可以有默认值的。int func1(int a, int b=10, int c=10) { return a + b + c;}//如果某个位置已有默认参数值,从这个位置往后,都必须有默认参数值int func2(int a, int b=10, int c=10,int d=10) { return a + b + c + d;}//函数声明int func3(int a=10, int b=1

2021-12-01 20:25:43 464

原创 C++引用部分

引用作用:给变量起一个别名。无论用别名还是原名去修改数据,其实操纵的是同一块内存。引用的注意事项:引用必须初始化,必须在开始就告诉计算机这是谁的别名 。引用一旦初始化后,就不可以更改了。引用做函数参数:函数传参时,可以利用引用的技术让形参修饰实参 。优点在于可以简化指针操作。引用做函数返回值:引用是可以作为函数的返回值存在的。注意不要返回局部变量引用。如果 函数的返回值是引用,那么这个函数调用可以作为左值。引用的本质:引用的本质在C++内部实现是一个指针常量。使用的时候无需多想,只是把别名当成原变

2021-11-30 16:18:12 629

原创 C++程序的内存模型

程序的内存模型内存分区模型代码区全局区栈区堆区new操作符delete操作符内存分区模型C++在程序执行时,将内存大方向化为4个区域。不同区域存放的数据有不同的生命周期,可以方便灵活编程。在程序编译后,生成了exe可执行程序,未执行该程序前分为代码区和全局区。代码区代码区:存放函数体的二进制代码,由操作系统进行管理的。存放CPU执行的机器指令。代码区是共享的, 共享的目的是对于频繁执行的程序,只需要在内存中有一份代码即可。代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令。全局区全局区

2021-11-29 20:51:31 241

原创 C++通讯录管理系统

通讯录管理系统系统功能介绍菜单功能函数退出系统功能实现添加联系人功能实现显示联系人函数删除联系人函数查找联系人函数修改联系人函数清空通讯录函数通讯录管理系统完整代码系统功能介绍功能描述:建立一个通讯录管理系统,能够让用户实现增删改查的功能。效果图如下。菜单功能函数功能描述:用户选择系统功能的界面。//显示菜单void ShowMenu() { cout << "*********************************" << endl; cout <

2021-11-28 21:37:54 469

原创 C++结构体部分

结构体结构体定义方式结构体数组结构体指针结构体嵌套结构体结构体做函数参数结构体中const修饰的作用结构体练习案例1结构体练习案例2结构体:属于用户自定义的数据类型,允许用户存储不同的数据类型。结构体定义方式例如创建一个学生信息结构体,代码如下:#include<String>//结构体定义//创建一个学生信息结构体struct Student { string name; int age; int score;}s3; //s3是“顺便”创建的结构体变

2021-11-27 21:04:02 173

原创 C++指针部分

指针指针作用指针所占内存空指针野指针const修饰指针常量指针指针常量常量指针常量指针和数组指针和函数值传递地址传递指针练习案例指针作用可通过指针访问内存。可以利用指针变量保存地址。 //定义指针和使用指针 int zz = 10; int* p = &zz; cout << "zz的地址为" << &zz << endl; cout << "指针p为" << p << endl; *p = 100;

2021-11-27 20:10:47 458

原创 C++函数部分

函数函数定义函数写法函数调用值传递函数常见样式函数声明函数的分文件编写函数定义将一段经常使用的代码封装起来,减少重复代码。一个大型程序一般分为若干个程序块,每个模块实现特定的功能函数写法//函数写法返回值类型 函数名(参数列表){ 函数语句 return表达式}//实现两个数字相加的函数int add(int sz1, int sz2) { int sum = sz1 + sz2; return sum;}函数调用是指去使用定义好的函数。 int sz1 = 20;

2021-11-26 19:10:21 125

原创 C++数组部分

C++数组数组定义一维数组一维数组练习案例冒泡排序二维数组二维数组练习案例数组定义数组:数组就相当于一个集合,里面存放相同类型的数据元素。数组是由连续的内存位置组成的。一维数组 //数组三种创建方式 //1.数据类型 数组名【数组长度】; int arr1[5]; arr1[0] = 10; //为数组赋值 //2.数据类型 数组名【数组长度】={值1,值2,值3......} int arr2[5] = { 10,20,30,40,50 }; for (int i = 0; i &

2021-11-26 18:03:51 928

原创 C++程序流程结构

C++支持三种最基本的程序运行结构:顺序结构,选择结构,循环结构。顺序结构:程序按顺序执行,不发生跳转。选择结构:依据条件是否满足,有选择地执行相应功能。循环结构:依据条件是否满足,循环多次执行某段代码。选择结构if 语句if语句:执行满足条件的语句。有单行格式,多行格式和多判断条件的if语句。...

2021-11-25 20:15:07 510

原创 C++数据类型部分

C++规定在创建一个变量或者常量的时候,必须指出相应的数据类型,否则无法分配内存。整型:表示是整数类型的数据。以下是整型的四种类型,区别在于占用内存空间不同。short num1 = 10;//短整型 取值范围(-32768,32767)int num2 = 20;//整型 取值范围(-2^31,2^31-1)long num3 = 30;//长整型 取值范围(-2^31,2^31-1)long long num4 = 40;//长长整型 取值范围(-2^63,2^63-1)//利用关

2021-11-25 15:25:06 271

原创 C++常量和标识符命名规则

常量:用于记录不可修改的数据。比如一年只有12个月份,月份的数量只能为12,不可以修改成其他数量。定义常量的两种方式:1、#define宏常量#define 常量名 常量值通常在文件上方定义。2、const修饰的变量const 数据类型 变量名 = 变量值通常在定义变量前加关键字const,修饰该变量为常量,不可修改。示例代码如下:#include<iostream>using namespace std;#define Day 7 int main(){ co

2021-11-25 14:24:21 1213

原创 10.C++力扣刷题274

题目:给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (n 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。且其余的 n - h 篇论文每篇被引用次数 不超过 h 次。例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇。提示:如果 h

2021-09-13 09:20:21 177

原创 《C++ Primer》学习笔记第2章

《C++ Primer》第二章 变量和基本类型目录2.1基本内置类型2.2变量2.3复合类型2.4 const 限定符2.5处理类型2.6自定义数据结构术语表目录2.1基本内置类型C++定义了一套包括算术类型(arithmetic type) 和空类型(void)在内的基本数据类型。其中算术类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值,仅用于一些特殊的场合,例如最常见的是,当函数不返回任何值时使用空类型作为返回类型。算术类型分为两类:整型(integral type,包括字符和布尔类

2021-09-11 21:03:54 84

原创 9.C++力扣刷题41

题目:给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例:示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:1 <= nums.length <= 5 * 105-231 <= nums[i] <= 231 - 1来源:力扣(L

2021-09-11 11:41:21 188

原创 8.C++力扣刷题442

题目:示例:提示:来源:代码如下:解题思路:知识巩固:

2021-09-10 08:03:44 105

原创 《C++ Primer》学习笔记第1章

《C++ Primer》第一章 开始目录1.1 编写一个简单的C++程序1.2 初识输入输出1.3注释简介1.4控制流1.5 类简介1.6 书店程序目录1.1 编写一个简单的C++程序每个C++程序都包含一个或多个函数( function),其中一个必须命名为main。系统通过调用 main函数来运行C++程序。main函数的返回类型必须为int,即整数类型。一个函数的定义包含四部分:返回类型(returm type)、函数名(function name)、一个括号包围的形参列表(parameter

2021-09-09 13:12:01 385

原创 7.C++力扣刷题448

题目:示例:提示:来源:力扣(LeetCode)代码如下:解题思路:知识巩固:

2021-09-09 09:18:06 341

原创 《C++ Primer》学习笔记目录汇总

《C++ Primer》第五版章节目录第1章 开始第2章 变量和基本类型第3章 字符串、向量和数组第4章 表达式第5章 语句第6章 函数第7章 类第8章 IO库第9章 顺序容器第10章 泛型算法第11章 关联容器第12章 动态内存第13章 拷贝控制第14章 重载运算与类型转换第15章 面向对象程序设计第16章 模型与泛型编程第17章 标准库特殊设施第18章 用于大型程序的工具第19章 特殊工具与技术章节目录第1章 开始????学习笔记????习题检测第2章 变量和基本类型????学习笔记?

2021-09-08 21:45:48 734

原创 6.C++力扣刷题697

题目:给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例:示例 1:输入:[1, 2, 2, 3, 1]输出:2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2,

2021-07-23 13:13:35 278 6

原创 5.C++力扣刷题645

题目:集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/set-mismatch著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。示例:

2021-07-22 08:13:24 252

原创 4.C++力扣刷题628

题目:给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例:示例 1:输入:nums = [1,2,3]输出:6示例 2:输入:nums = [1,2,3,4]输出:24示例 3:输入:nums = [-1,-2,-3]输出:-6提示:3 <= nums.length <= 10^4-1000 <= nums[i] <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro

2021-07-21 12:12:20 87

原创 3.C++力扣刷题414

题目:给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。示例:示例 1:输入:[3, 2, 1]输出:1解释:第三大的数是 1 。示例 2:输入:[1, 2]输出:2解释:第三大的数不存在, 所以返回最大的数 2 。示例 3:输入:[2, 2, 3, 1]输出:1解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。进阶:你能设计一个时间复杂度 O(n

2021-07-20 22:43:33 195

原创 2.C++力扣刷题495

题目:在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。示例:输入: [1,4], 2输出: 4原因: 第 1 秒初,提莫开始对艾希进行攻击并使其立即中毒。中毒状态会维持 2 秒钟,直到第 2 秒末结束。第 4 秒初,提莫再次攻击艾希,使得艾希获得另外 2 秒中毒时间。所以最终

2021-07-19 08:32:15 103

原创 1.C++力扣刷题485

题目:给定一个二进制数组, 计算其中最大连续 1 的个数。示例:输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.提示:输入的数组只包含 0 和 1 。输入数组的长度是正整数,且不超过 10,000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/max-consecutive-ones著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码如下:

2021-07-18 21:29:50 205

原创 C++中未定义标识符ULONG,UINT的报错解决方法 VS2019

C++中未定义标识符ULONG,UINT的报错解决方法 VS2019在使用VS 2019中 ulong,uint出现报错情况,如下图:解决方法如下:1、加入头文件#include <wtypes.h>2、#define ulong ULONG3、#define uint UINT#include <wtypes.h>#define ulong ULONG #define uint UINT 最终结果error为0:...

2020-12-08 21:05:18 11659 4

空空如也

空空如也

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

TA关注的人

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