自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

敲代码嘞~的博客

每天敲一敲,延年又益寿

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

原创 C++ 进阶(3)虚函数表解析

在这个虚函数表中,主要有一个类的虚函数的地址。当我们用基类指针操作派生类的时候,其指明了实际应该调用的函数。

2024-05-22 16:53:46 216

原创 C/C++ 进阶(2)多态

1、必须通过基类的指针或者引用调用虚函数。2、被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。public:// 用virtual修饰的函数cout

2024-05-21 22:14:47 616

原创 C/C++ 进阶(1)继承

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。对于不同的类,可能会有相同的属性,如果在每一个类中都存一份相同的属性,可能会属性冗余。这样我们就可以把相同的属性拿出来,单独设置成一个类,然后成为父类(基类)这个表格挺重要的!!!

2024-05-18 22:28:36 687

原创 C/C++ 入门(12)模板进阶

一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。1. 模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生。2. 增强了代码的灵活性。

2024-05-14 00:30:32 802

原创 C/C++ 入门(11)stack、queue(STL)

适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。stack、queue、priority_queue底层都是容器适配器。deque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高。deque通过多个数组实现的。

2024-05-13 14:59:42 817

原创 Linux 权限

就是通过一定的条件拦住一部分人,给另一部分人权力,来访问某种资源。sudo:super user do(干超级用户干的事)说白了就是一个提权功能,让一个非root用户拥有root用户的操作权限。

2024-05-11 22:01:34 705 1

原创 C/C++ 入门(10)list类(STL)

欢迎来指教!

2024-05-08 20:07:15 937

原创 C/C++ 入门(9)编译链接

缺省参数只写在函数声明的时候。

2024-04-29 17:48:35 281

原创 C/C++ 入门(8)vector类(STL)

问题是关键呦

2024-04-25 15:40:53 381 2

原创 C/C++ 入门(7)string类(STL)

1、string是表示字符串的字符串类2、该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。

2024-04-22 09:49:58 1160

原创 C/C++ C/C++ 入门(6)模板初阶

在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供调用。比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然后产生一份专门处理double类型的代码,对于字符类型也是如此。是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。1、一个非模板函数可以和一个同名的模板函数同时存在,而且该函数模板还可以被实例化为这个非模板函数。类模板名字不是真正的类,而实例化的结果才是真正的类。

2024-04-15 17:24:16 1079

原创 C/C++ 入门(5)内存管理

new的原理:1、调用operator new函数申请空间。2、在申请的空间上执行构造函数,完成对象的构造。delete的原理:1、在空间上执行析构函数,完成对象中资源的清理工作。2、调用operator delete函数释放空间。new T[N]的原理:1、 调用operator new[]函数,在operator new[]中实际调用operator new函数完成N个对象空间的申请。2、 在申请的空间上执行N次构造函数。delete[]的原理。

2024-04-12 18:54:38 628

原创 C/C++ 入门(4)类和对象(下)

在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。2、多个参数的类,如果构造的时候,仅需要一个参数进行构造的话,如果没有explicit修饰的话,具有类型转换。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加。如果一个类定义在另一个类的内部,这个内部类就叫做内部类。友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员。

2024-04-11 11:47:57 1084

原创 类和对象总结

成员函数存储在代码段中,而不是对象中。内联函数在编译阶段就会在调用的地方进行展开(没有函数的地址),如果把声明定义分离,则无法链接或者是找不到链接(有符号表,但是对应的符号没有地址,无法解析)。

2024-04-08 21:04:47 240

原创 Linux 常用指令及其理论知识

写代码:1.nano 源文件 2.CTRL + X 3. y 4. enter 5. gcc 源文件 6../a.out。指令出现疯狂打印的情况:CTRL + C(终止异常的命令)指令的本质就是程序——指令、程序、可执行程序都是一回事。echo:将后面的字符串输出到显示器上​​​​​​​。安装和卸载——是把可执行程序拷贝/删除到系统路径下。rmdir [-p][dirName] 删除目录。Linux中同一个目录下不允许有同名文件。文件 = 文件属性 + 文件内容。rm:删除文件或目录。

2024-04-06 17:30:41 1365 1

原创 莫队算法,

莫队算法就是一个离线的,通常针对于区间询问的一种算法。

2024-04-04 15:45:08 193

原创 C/C++ C++入门(2)类和对象(上)

/ class 和 struct 是定义类的关键字、A1,A2是类的名字、{}里面的是类的主体// 注意:最后的分号不要忘记!!!class A1{// 属性(成员变量) —— 默认的属性的权限是privite// 方法(成员函数)struct A2{// 属性 —— 默认的属性的权限是public// 方法如果成员函数在类中定义,编译器可能会将其当成内联函数处理。public:public:// 学生的属性是 名字和年龄int _age;

2024-03-23 16:47:59 844

原创 C/C++ C++ 入门(3)类和对象(中)

欢迎各位来指教!

2024-03-05 17:19:58 1166 1

原创 C/C++ 交换排序

冒泡排序,快排模板

2024-02-20 11:54:31 251 1

原创 C/C++ h0138. 疯牛

通过题目看,这就是一个二分+贪心的题目。通过二分来找相邻两头牛间的距离,然后每二分一次,就判断一次摊位是否能放得下c头牛。

2024-02-02 08:28:41 500

原创 C/C++ C++入门(1)

/ 正常定义int a = 1;int b = 2;// 嵌套定义int a = 1;int b = 2;int a = 1;int b = 2;// 一个工程里面允许定义多个相同的命名空间——编译器最后会合成同一个命名空间中。int main()// 打印cpp2里面的函数// 打印cpp2里面的cpp3里面的函数return 0;

2024-02-01 09:08:14 2372 3

原创 LeetCode:376.摆动序列

其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。仅有一个元素或者含两个不等元素的序列也视作摆动序列。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。我们只需要记录每段是上升的还是下降的,然后如果连续的两个序列不同的话,就进行记录。整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3)。我们要求摆动序列的最大子序列(可以进行删除操作,创造子序列)

2024-01-27 14:25:05 528 2

原创 C/C++ LeetCode:跳跃问题

区间覆盖,我们可以每次移动一位的时候就进行一次区间覆盖的估计,然后将区间覆盖最大的来更新旧的,如果区间将数组的最后一个元素覆盖了之后,就证明我们肯定能保证能存在一个最短的路径,使得步数最小。数组的第一个元素是2,那我们是不是要往后移动2个元素,才能保证步数最短呢?显然不是,如果我们直接往后移了2位,是比只移了1位的距离远(从下标为 0 跳到下标为 1 的位置,跳 1步,然后跳 3 步到达数组的最后一个位置。可是每一步都尽可能的大,这句话可能会有一些歧义。题目让我们来解答如何才能在最短的步数内到达终点。

2024-01-26 21:00:10 413

原创 C/C++ 堆排序

今天要介绍的是堆排序。首先什么是堆?简而言之,堆就是二叉树的数组形式,用数组来存储二叉树。这个堆和C语言中讲的堆区是不同的两个概念,不要混淆。该操作的主要作用是将该堆中最大的元素进行归位,并且进行调整除了最后一个元素的二叉树的顺序,使其仍为一个堆。// 进行删除最后一个元素// 假设左节点最大,如果右结点比左节点大,就child存右节点下标child += 1;// 判断孩子结点和父节点的值else// 不需要则退出break;

2024-01-11 22:52:07 849 18

原创 C/C++ 表达式求值(含多位数)

表达式求值是一个比较基础的代码关于栈的使用。在写的时候充分锻炼了大脑的思维和对代码的调试能力。如果是在纸上给一个计算表达式,你一定可以算出来,但是要用代码实现的时候就会感觉没什么思路了,接下来就来看我给你“操作一番”!

2023-12-13 22:27:20 1616 39

原创 C/C++ 前缀和与差分

前缀和就更像是数学中的前n项和。比如说数组【1,1,1,1,1】,则前缀和数组就是【1,2,3,4,5】。差分更像是前缀和数组的原数组。比如说前缀和数组是【1,2,3,4,5】,则差分数组就是【1,1,1,1,1】。总结一句话:前缀和和差分是互逆运算。

2023-12-06 12:35:43 761 42

原创 C/C++ 整数二分以及浮点数二分

/k为查找的数while (i+1!return i;return 0;//k为查找的数while (i+1!return i;return 0;

2023-12-03 23:03:39 727 35

原创 C/C++ 快速排序

一、引言快速排序的思想——分治一、引言快速排序是对冒泡排序的一种改进。它的基本思想在于划分,首先选一个基准x,让x的左边都小于x,让x的右边都大于x。然后通过递归,一直将数组分成两个或一个元素。二、讲解1、步骤1、将确定分界点。2、调整范围——让基准x的左边都小于x,让x的右边都大于x。3、递归分治。如果arr数组为:【0,1】基准点为左边界。因为i先自增,arr[0]==0,退出循环.。j先自减,arr[j]>0,继续进入循环,j--,arr[j]==0,退出循环。

2023-12-02 00:18:37 591 35

原创 C/C++ 递归指数型枚举

之前进行枚举的时候,都是进行暴力枚举的策略,将所用可能性都枚举一遍以获得最优解,但是枚举全部元素的效率如同愚公移山,无法应付数据范围稍大的情形。其算法的主要策略是跳过一些无效状态,降低问题的规模。

2023-11-22 20:37:31 477 49

原创 C/C++高精度

为什么需要高精度算法?因为在某些情况下数据太大,基本的数据类型不能够进行存储,所以需要高精度算法来进行运算。

2023-11-18 22:55:13 494 63

原创 C/C++【数据结构】一文秒懂二叉树

树形结构是一类非常重要的非线性结构。树形结构是节点之间有分支,并且具有层次关系的结构,它类似于自然界中的树。就比如说:电脑中磁盘中的文件储存方式就类似于一颗树。在讲二叉树之前,我们要先讲树的定义和树的一些术语。树是n(n>=0)个结点的有限集,T为空时称为空树。非空树的特点:T中有且仅有一个结点K,没有前驱,称K为树的根结点。除了根结点以外,其余节点有且仅有一个直接前驱。T中各结点可以有0个或者多个后继。除了根节点以外,其余结点可以分为m个互不相干的有限集合。

2023-11-11 16:27:19 544 67

原创 C/C++【数据结构】一文秒懂时间复杂度和空间复杂度!

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,但是这个是不可以计算出来的,只有在机器上跑出来才知道。每个机器可能因为CPU等硬件的不同,跑出来的时间也不一定相同。

2023-11-07 12:30:47 635 52

原创 C/C++快速求素数【细节满满】

在以前的学习的时候,我们写过如何求1-n以内的素数,也写过判断某个数是否是素数。然后我们从数字2(我们知道数字2是素数)开始进行对其整数倍进行标记,同理3也是如此。循环2-sqrt(x),然后对x进行取余,如果取余结果为0,则不是素数,反之,是素数。首先,我们要有1-n之间的数,然后一个一个的判断其是不是素数,然后进行打印。判断是不是素数,不要写一个判断函数,从2-sqrt(n)进行循环取余判断。欧拉筛是唯一筛掉一个数的筛法,不存在重复计算,所以时间复杂度是O(n)。同样地,我们首先是提供1-n之间的数。

2023-11-03 22:01:41 2123 57

原创 C/C++数据结构——队列

在前面学习了栈的基本知识,知道栈是一种特殊的线性表,其特点是先进后出。而接下来要学的队列也是一种操作受限的线性表,其特点是先进先出。从队头出队,从队尾入队。

2023-10-24 12:20:45 761 60

原创 C/C++程序设计和预处理

计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息工具。说白了互联网、智能移动设备、云计算、大数据的共同基础、共同的指挥官就是程序。简而言之,程序=算法+数据结构。预定义符号都是语言内置的。//预定义符号__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义int main()//预定义符号。

2023-10-21 20:51:00 929 49

原创 C/C++文件操作(细节满满,part2)

通过上篇文章,已经了解了什么是文件、打开和关闭文件的操作,流的概念等。如果对于上述的内容感到有点陌生了,不妨去看一看,文章链接在开头。这篇文章的内容将会包含写文件的基本操作。

2023-10-17 22:39:33 1767 46

原创 C/C++自定义类型(2)细节满满!

继上篇文章讲了结构体和位段之后,接着来写枚举类型和联合类型。

2023-10-13 12:30:55 448 54

原创 C/C++静态通讯录

C/C++静态通讯录

2023-10-10 22:27:56 183 13

原创 C/C++文件操作(细节满满,part1)

磁盘上的就是文件。文件分为两种:程序文件和数据文件。

2023-10-10 00:12:42 355 39

原创 C/C++内存函数的用法及其实现( 超详细)

而对于内存中的数据,我们在写函数的时候并不知道程序员将调用这个函数来完成什么类型的数据拷贝,如果将它强转成(int*)类型的话,在需要复制的数据所占空间不是4的整数的时候在边界会一些问题。我们需要知道void*类型的指针不能直接进行解引用操作和运算操作,需要把它进行强制类型转化为所适合的类型,然后再进行相应的操作。destination:指向要在其中复制内容的目标数组的指针,类型转换为 void* 类型的指针。source:指向要复制的数据源的指针,类型转换为 const void* 类型的指针。

2023-10-05 20:22:01 640 27

KTV点歌程序-大一C语言课设

大一c语言课设源代码,用链表写的,可以借鉴。 通过这次C语言课设,学生们可以巩固以前所学的知识,同时学到很多在书本上所没有学到过的知识。课设使学生懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实际相结合起来,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中,学生们会遇到各种各样的问题,同时也会发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固。通过课设,学生们的自信心得到提高,他们也会写程序的乐趣和思维。还有和同学分工合作的经验,深刻体会到代码风格和可读性对于读懂别人的代码的重要性。 而且写课设一般都需要答辩,答辩时一定要控制好自己的语速和仪态,进行毕业论文答辩的同学一般都是首次。无数事实证明,他们论文答辩时,说话速度往往越来越快,以致毕业答辩委员会成员听不清楚,影响了毕业答辩成绩。故毕业答辩学生一定要注意在论文答辩过程中的语流速度,要有急有缓,有轻有重,不能像连珠炮似地轰向听众。在答辩时,学生要注意仪态与风度。 最后,祝愿大家都有一个好的编程能力和编程的思维。与诸共勉!

2023-09-12

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

TA关注的人

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