自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】类和对象(六)

不属于任何类,如果要成为一个类的朋友就需要在该类内部声明,声明时需要加。

2024-06-26 11:23:08 1256 23

原创 【C++】类和对象(五)隐式类型转换

class Bprivate://缺省值 的 形式 总结int _a = 1;

2024-06-25 16:57:23 644 9

原创 【C++】内存管理

我们先来看看C/C++内存区域的划分栈又叫堆栈–非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口 创建共享共享内存,做进程间通信。堆用于程序运行时动态内存分配,堆是可以上增长的。数据段–存储全局数据和静态数据。代码段–可执行的代码/只读常量。思考1.内存管理为什么要分这些区域?答:为了方便管理不同生命周期的变量(全局、局部)思考2.哪个区是我们需要去关注的呢?堆是我们需要重点关注。

2024-06-24 11:41:55 1428 18

原创 【C++】类和对象(四)拷贝构造、赋值运算符重载

程序员不显示定义拷贝构造函数 ,则编译器会自动生成拷贝构造函数。并且1️⃣ 对内置类型的成员变量进行值拷贝(浅拷贝)。2️⃣对自定义类型的成员变量 调用它的拷贝构造。class Timepublic:~Time()// 注意:拷贝构造函数 也属于构造函数 编译器就不会自动生成 构造函数// 但是下面一句代码 可以强制编译器生成默认构造private:int _hour;

2024-06-21 09:42:33 1403 21

原创 【C++】类和对象(三)构造与析构

1️⃣函数名和类名相同2️⃣没有返回值(不需要写)class Datepublic://函数名与类名相同 没有返回值 不用写voidDate()_year = 1;_month = 1;_day = 1;int _month;int _day;d1.Print();return 0;3️⃣对象实例化时 编译器自动调用该函数,如果没有构造函数可调,会报错。

2024-06-20 14:50:18 1449 17

原创 【C++】类和对象(二)this指针

结构体中只能定义存放数据的结构,操作数据的方法不能放在结构体中,即数据和操作数据的方式是分离开的,而且实现复杂,涉及大量指针操作。C++中通过类可以将数据 以及 操作数据的方法放在一起,通过访问权限可以控制哪些方法在类外可以被调用,即。函数,但可以打印出各自对象成员变量的不同值,那编译器是如何知道本次调用是哪一个对象在调用该成员函数呢?相应的,对象在调用成员函数的时候,所有的成员函数被定义出来的时候,默认都会带有一个被隐藏起来的指针,叫做。this指针是一个成员函数的形参,所以在函数栈帧里。

2024-06-12 16:48:26 989 19

原创 【C++】类和对象(一)

/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。int month;int day;int month;int day;为了防止成员变量和成员函数的形参混淆class Date。

2024-06-05 19:47:46 1997 60

原创 【C++】入门(二):引用、内联、auto

1️⃣引用做参数🅰️可以作为输出型参数。🅱️对象较大,减少拷贝提高效率2️⃣做返回值🅰️修改返回对象。🅱️减少拷贝提高效率如果在头文件中进行函数定义,以下代码存在函数名重定义的问题。问题分析Stack.cpp 包含了头文件 Test.cpp也包含了头文件。头文件的包含 在预处理阶段 会进行内容替换。也就是说Add()函数被定义两次。Stack.cpp Test.cpp 会分别产生Stack.o、Test.o。

2024-05-31 20:12:52 1455 43

原创 【C++】入门(一):命名空间、缺省参数、函数重载

函数声明告诉编译器函数的名称、返回类型以及参数列表(类型、顺序和数量),但不涉及函数的具体实现。函数声明经常出现在头文件(.h)中函数定义:提供了函数的实际实现,它包括函数的主体,即函数被调用时将执行的具体代码。函数定义包含了函数声明的所有信息,并加上了函数体//Stack.h 声明int* a;int size;//...//*注意 必须在声明中给出缺省值//Stack.cpp 定义。

2024-05-30 20:44:47 1545 31

原创 【数据结构】排序(二)——快速排序(细节版)

❓细节1:Left 从 begin or begin+1 开始?答:从begin+1开始❓细节2:相遇即停如何控制?答:虽然外层判断left<right 但内层循环 left、right 持续在动 不能保证依然满足 left<right 的条件。当left、right 错位了 再找比key大 或 小 的值 就没有意义了!!!所以给 负责找大 找小的循环 要加上left<right 的条件!!!这样就控制了 相遇即停❓细节3:右边先走可以保证 相遇位置 比 key小?为什么?

2024-05-20 10:36:57 1637 71

原创 【数据结构】排序(一)—— 希尔排序(思路演进版)

1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组接近于有序。当gap == 1时,数组已经是接近有序,再进行直接插入排序,目的是让数组有序。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。

2024-05-12 19:27:41 1824 34

原创 【数据结构】堆的应用——堆排序、top-k问题

堆排序、top-k问题

2024-05-10 10:29:11 638 35

原创 【数据结构】 二叉树的顺序结构——堆的实现

堆中某个节点的值总是不大于或不小于其父节点的值。父节点比孩子结点大 是大堆。父节点比孩子结点小 是小堆。

2024-05-10 09:56:48 365 19

原创 【数据结构】栈和队列的实现

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。

2024-05-09 10:58:28 232 13

原创 【LeetCode】环形链表I 环形链表II

结论: 一个指针从链表头节点走 另一个指针从相遇点走 两个指针会在 入口点相遇。下面我们对该结论用数学归纳法进行证明:从简单的情况推广到更普遍的情况。若存在环形链表 , 无论两个指针的步差是多少,相比上一题目 ,该题需要我们求入口点。

2024-05-09 10:23:36 533 13

原创 【数据结构】链表的增删查改

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的。注意:1.链式结构在逻辑上是连续的,但在物理上不一定连续2.现实中的结点一般都是从堆上申请出来的3.从堆上申请的空间,是按照一定的策略来分配,两次申请的空间,可能连续,也可能不连续。

2024-04-18 16:22:38 786 1

原创 【数据结构】顺序表的增删查改

是用一段的存储单元依次存储数据元素的,一般情况下采用。在数组上完成数据的增删查改。1.静态顺序表:使用定长数组存储元素。2. 动态顺序表:使用动态开辟的数组存储。

2024-04-07 19:48:52 219 28

原创 【C语言】手把手教你实现通讯录(静态+动态+文件存储版本)

pc来接收,里面并用aasert断言一下,以便知道是哪行出了问题,它属于一种暴力检查。再用memset函数,把通讯录里面的信息条数置为0,即把sz记录当前数量置为0。除了用pc接收,还要接收删除name的地址,在里面用for循环,遍历查找,里面再用if判断语句来判断,用strcmp比较函数来比较所输入名字和通讯录名字是否一样。然后我们发现,每个人的信息包括:姓名、性别、年龄、电话、住址 这些条目,所以我们将每个人的信息打包。初始化时,传的是结构体Con的地址,用。实现通讯录功能的函数。

2024-03-26 10:31:38 2863 41

原创 【C语言】详解自定义类型:结构体,枚举,联合

C语言中有很多内置的数据类型例如:int double ...等等。但我们在现实中有很多复杂对象需要描述。C语言中描述复杂对象的方式分别有结构体,枚举,联合,本期博客就让我们一起学习它们吧!有了结构体类型,那如何定义变量,其实很简单。代码示例:int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化。

2024-03-20 09:58:22 920 17

原创 【c语言】超详解文件操作

磁盘上的文件是文件程序设计中,文件分为两种:程序文件、数据文件(从文件功能的角度来分类的)

2024-03-18 12:42:22 1347 28

原创 【c语言】详解C语言预处理、编译、链接

对于c语言的初学者来说,一上来就会对#include、 #define 这些预处理指令表示摸不着头脑,询问老师,老师便会回答 :你先不用懂,这个问题先放着吧!.......那么今天终于到了要揭秘的时刻了!完结撒花!语法:ps:!!!在define定义标识符的时候,不要在最后加上;容易出问题#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义 宏(define macro)。下面是宏的申明方式:其中的 parament-list 是一个由逗号隔开的符号表。

2024-03-15 18:13:56 1592 13

原创 【c语言】数据在内存中的存储

最近在复习C语言,发现深入剖析数据在内存中的存储这个问题,可以帮助我理解很多原来学过的计算机组成原理的知识(eg.原码反码补码大小端存储~之类的知识hhh)有一种打通任督二脉的感觉哈哈哈。第一遍理解个过程中,觉得知识过于杂乱,所以前来做个小总结!说起数据类型我们大致可以归类为:整型、浮点型、构造类型、指针类型、空类型。本文主要探讨整形、浮点型在内存中的存储形式。前提我们要知道:计算机能够处理的是二进制数据,整型和浮点型数据在内存中也都是以二进制进行存储的。明白数据在内存中的存储形式到底是为了什么呢?

2023-11-26 21:14:52 1807 40

原创 【C语言】辗转相除法求最大公约数

辗转相除法又称欧几里得算法,该算法用于计算两个非负整数a,b的最大公约数。

2023-11-16 09:20:47 1254 12

原创 第一篇博客

从前只是在csdn上做内容的汲取者,因为观摩了很多大佬的学习内容分享、他们技术栈的点滴积累,发现写博客可以很好的复盘自己遇到的问题、复盘问题的解决过程,从中得到进步。并且经过近两个月的学习,发现自己对学过的知识,遗忘的情况时有发生。遇到一个问题时,自己从0到1的解决思路总是难以建立,总是在别人的思路上填填补补。希望解决这些问题,提升自己的逻辑思维能力,决定开始写自己的博客,复盘思路,纪录学习过程,如果能帮助到跟我当时一样迷茫的人,就再好不过啦!最后想跟现在的自己说:欲速则不达!

2023-11-13 17:26:35 119 12

空空如也

空空如也

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

TA关注的人

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