自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STL_vector实现及干货以及vector迭代器失效问题

你想在pos位置插入一个值如果你用上面的函数用的次数多了,当它扩容的时候,你去调试,会发现pos位置变成随机值了,因为扩容可能会遇到异地扩容,当异地扩容的时候,原本的空间会被释放,把数据挪移到另外的空间,正确的写法应该是下面这种。

2024-09-16 16:51:01 862 4

原创 标准库_string的代码实现

string不属于stl,string比stl出现的早的多,所以string属于标准库,不属于stl大家可以在cplusplus网站看string的内容。

2024-09-09 20:39:00 912 2

原创 c++内存管理和模板

C语言的这三个函数对于内置类型的处理是还可以的,但是对自定义类型就无法处理了,因为c++自定义类型在初始化的时候是自动调用构造函数的,而C语言的这三个函数是无法初始化内置类型的,于是我们下面要介绍new和delete两个关键字,所以在用new创造空间时,会自动调用构造函数,在用delete释放空间时,会自动调用析构函数。

2024-09-03 21:27:34 988 7

原创 快排/堆排/归并/冒泡/

上面所说的全部属于内排序,内排序和外排序最大的区别就是数据量,内排序的数据量较小,可以放在内存中直接排序,而外排序的数据量大,内存装不下,所以要放在磁盘里排序,所以我们接下来将介绍用归并排序对文件里的数据进行排序。

2024-08-13 22:28:36 1176 6

原创 二叉树的链式结构和顺序结构的增删查改

树是一种非线性的数据结构,它是一个n个节点组成的具有层次关系的集合,一棵树由一个根节点和若干个其余节点构成,除了根节点外,其他的节点都由一个前驱和多个后继,而根节点可以有多个后继,但没有前驱,树由递归定义,并且子树不能有交集,否则就不是树。

2024-07-27 18:41:41 983 12

原创 栈和队列的概念与实现

栈是一种特殊的线性表,只允许在固定的一端进行插入删除操作,进行数据的插入删除操作的一端被称为栈顶,另一端被称为栈底,栈中的数据遵循后进先出的原则,栈的插入操作叫做压栈/进栈/入栈,入数据在栈顶,栈的删除操作称为出栈,出数据也在栈顶。分别有链式栈和数组栈。

2024-07-17 15:46:19 300 6

原创 顺序表和链表

malloc出来的节点需要free,否则会产生内存泄露,在函数里malloc产生的节点是不会释放的,只有free才能释放。线性表在逻辑上是呈现线性结构,但在物理层面上不一定是连续的,常见的线性表有:顺序表,链表,栈,队列等等…顺序表是用一小段物理地址连续的存储单元依次存储数据的线性结构,一般情况下采用数组存储,一般可分为。结构简单,一般不会用来存储数据,而是作为其他数据结构的子结构,如哈希桶,图的邻接表等。结构最复杂,一般用来单独存放数据,它也是实际当中最常使用的链表结构。

2024-07-09 20:23:38 423 13

原创 时间复杂度和空间复杂度

空间复杂度是一个数学表达式,是对一个算法运行过程中临时占用的储存空间大小的量度,算多少字节的空间是没有意义的,空间复杂度算的是变量的个数,也用大O渐进表示法表示,函数所需要的栈空间在编译的时候就已经确认好了,因此空间复杂度主要通过函数在运行过程中的额外空间确定。算法的时间复杂度是一个函数,他定量的描述了一个算法执行的时间,但由于数据量不同,环境不同,配置不同,从理论上来说是不能算出来的,但我们可以知道,一个算法执行的时间与执行的次数成正比例,所以,一个算法基本执行的次数,就是时间复杂度。

2024-07-03 16:16:40 774 10

原创 类的六个构造函数相关干货

注意:每个成员变量在初始化列表中只能初始化一次,也就是只能出现一次,当类中成员变量包含引用成员变量,const类型成员变量,没有默认构造函数的类类型成员变量时,都要放在初始化列表初始化,我们也尽量使用初始化列表初始化,因为不管你用不用初始化列表,程序都会先走初始化列表再执行构造函数里面的内容的,成员变量的声明顺序就是初始化列表的初始化顺序,与初始化列表里的顺序是无关的,所以最好不要让初始化的成员互相初始化,很容易得到随机值。

2024-04-25 13:58:05 1100 8

原创 命名空间/缺省参数/函数重载/引用等c++入门干货

定义命名空间时,在namespace关键字后面跟着的是命名空间的名字,后面再接一对{ },{ }里面就是命名空间的成员(包括函数和变量)。int main()声明:由于rand和std里的rand有冲突,接下来都只展示Add函数。引用相当于给一个变量取了一个别名,新变量和原先变量共用同一个内存空间。int a = 10;若你运行了上诉代码,你会发现上述代码输出的地址是一模一样的。

2024-04-06 20:51:44 1012 9

原创 函数的链式访问,迭代,嵌套调用和递归

我们会发现用迭代计算斐波那契数或者算n的阶乘会让程序崩溃,因为这其中产生了大量的重复计算,导致stack overflow(栈溢出)定义:某个函数中含有其他函数,在调用这个函数时同时也调用了其他函数,具体如下图。定义:一个函数在定义中直接或者间接的调用自己的编程方法称为递归。定义:把一个函数的返回值作为另外一个函数的参数,如下图。eg.接受一个整型值(无符号),按照顺序打印它的每一位。于是我们不能使用递归来执行这个代码,要用迭代。

2023-09-30 11:57:00 197 14

原创 函数栈帧的创建及销毁

在调用函数时我们需要在栈里创建一个空间来存放,这个空间就是函数栈帧,我们知道寄存器(集成到CPU上)包括eax,ebx,ecx,edx等,函数栈帧的创建和销毁需要用到两个寄存器,分别是esp和ebp,其中存放的是地址,这两个地址是用来维护函数栈帧的,我们以以下的代码来介绍这个过程。z=x+y;return z;int b=20;int c=0;Add(a,b);return 0;假设我们先调用main函数。

2023-09-04 21:20:37 181 37

原创 C语言数组越界导致程序死循环

我们都知道数组的大小是确定的,比如arr[10]里可以存放十个数,那如果我们存放11个,12个甚至更多呢?代码运行起来会有什么区别?如下图这个程序。for (i = 0;i < =11;会引起下图的异常而如果我们将i<=11改成i<=12,结果运行时变成死循环,如果i<=11报错我们可以理解,但为什么i<=12时会死循环呢?我们监视一下arr1数组和i的值。

2023-09-02 00:57:06 172 15

原创 扫雷游戏C语言

扫雷游戏是一款电脑自带的益智类游戏,我们今天要实现的是一款9*9的扫雷棋盘,游戏规则如下:1.如果所选的位置不是雷,那所选位置的数字就会显示周围一圈里雷的数量,如下图的红圈,说明没翻开的那个方块下是雷。2如果选到了雷,游戏结束。3.如果将全部的雷排除,那么游戏胜利。4.本扫雷游戏默认10个雷,可以通过输入位置坐标来指定要翻开的区域。

2023-08-26 22:39:24 151 7

原创 折半查找/二分查找

首先,如果我们想在数组中寻找自己需要的数,可以用以下代码进行实现int main()int i = 0;for (i = 0;i < sz;printf("找到了,编号是%d", i);printf("找不到");return 0;

2023-08-19 12:45:04 113 13

原创 数组C语言

1.数组中存放的是一个或者多个数据,但是数组的元素不能是0.2.数组中存放的多个数据,类型是相同的3.数组分为一维数组和多维数组,多维数组常见的一般为二维数组,存放在数组中的值被称为数组的元素,数组在创建时可以指定数组的大小和数组元素数据类型type表示的是数组的类型,比如说int,float等,arr_name指的是数组的名字,起的有意义就可以,[ ]里的常量值是用来指定数组的大小的用法实例。

2023-08-11 00:29:59 166 5

原创 猜数字游戏C语言(保姆级)

3.time:在程序中我们使用程序运行的时间作为种子,因为时间一直在发生变化,而函数time可以帮助我们获得这个时间,具体运作是time函数可以返回1970年1月1日到现在程序运行时间的差值,单位是秒,这个值被称为时间戳,time函数在使用的时候需要包含头文件time.h,而time返回的类型是time_t类型(本质上是32位或者64位的整型类型),他的标准格式是。首先,任何数%100的余数范围都是0~99,如果我们需要的是1 ~100的数字时,我们可以给他加上一个1,若想取其他范围也可以以此类推。

2023-08-10 22:54:32 224 8

原创 C语言分支与循环

c语言支持三种结构:顺序结构,选择结构,循环结构选择语句:if,switch实现选择结构循环语句:while,for ,do while实现循环结构。

2023-08-05 22:26:12 139 4

空空如也

空空如也

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

TA关注的人

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