- 博客(17)
- 收藏
- 关注
原创 CPP从入门到入土之类和对象Ⅱ
默认成员函数是,编译器自动生成的成员函数。一个类,我们在不写的情况下,编译器会默认生成六个默认成员函数本文详细介绍构造函数和析构函数。
2025-03-20 21:17:04
862
5
原创 CPP从入门到入土之类和对象Ⅰ
class是CPP类的关键字class{// 成员函数// 成员变量为了区分成员变量的名字 我们一般会在名字前或后加_ 又或者m开头float mval;和结构体struct的定义方式相同注意:CPP中struct也可以定义类,CPP兼容C中struct的用法,同时struct升级成了类,明显的变化是 struct中可以定义函数,一般情况下我们还是推荐用class定义类// class为类 是CPP的自定义类型// 定义一个栈// 函数定义和申明在同一个类域中。
2025-03-18 22:05:24
977
7
原创 从C到CPP过渡,你需要了解这些知识
命名空间是一个声明性区域,为其内部的标识符(类型、函数和变量等的名称)提供一个范围namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不在冲突了namespace只能定义在全局,并且可以嵌套定义项目工程中多文件中定义的同名namespace会认为是同一个namespace,不会冲突C++标准库都放在⼀个叫std(standard)的命名空间中//定义// 例如int val;// 默认访问函数指针的地址。
2025-03-12 11:27:58
912
4
原创 一文讲清楚堆
堆是一种满足特定条件的完全二叉树分为两种:大根堆:所有父节点都大于等于子节点小根堆:所有父节点都小于等于子节点大根堆的示例:对应的数组表示:在这个大根堆中:小根堆的示例:对应的数组表示:在这个小根堆中:完全二叉树的特性使得可以用数组来存储,对于索引i的节点:定义一个堆:二、堆的常见操作 方法名 描述 时间复杂度 HeapPush(Hp* ph, HpDataType val) 堆顶插入元素 O(logN)
2025-02-09 22:46:44
1061
2
原创 栈和队列详解
现实生活中,有很多先进后出的例子,比如说弹夹,一端进出子弹,先进弹夹的子弹后发射,后进弹夹的子弹先发射;再比如一摞盘子,一端摆放盘子先放到下面的盘子后拿出;再比如烤串,一般不从用手抓的一端串肉,先穿进去的食物后被吃到。这些物品都遵循的原则而我们的就是一种数据在的出入数据的一端叫栈顶,另一端叫栈底入数据称为压栈或者入栈,出数据称为出栈。
2025-01-24 23:14:39
499
1
原创 链表(Linked List)详解
/链表的销毁//插入操作//指定位置之前插入元素//指定位置之后插入元素//删除操作//删除指定位置之后的一个元素//删除指定位置元素//查找元素//链表打印//创建新的节点。
2025-01-24 21:32:32
353
原创 顺序表(SeqList)详解
/定义动态顺序表//顺序表有效数据个数//顺序表容量}SeqList;利用typedef给类型重新命名,在我们有其他数据类型需求的时候,我们只需修改int即可,大大提高了我们的工作效率顺序表定义顺序表功能接口如何实现。
2024-12-10 11:08:05
810
原创 复杂度分析
算法的空间复杂度是一个函数,描述一个算法实现临时占用存储空间大小的量度函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等)在编译期间已经确定好了,因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定i++)//两两排序,有size个元素,则有size - 1趟//假设这一趟已经有序j++)//排序完成的元素无需作比较,逐次往后比较if (arr[j] > arr[j + 1])//顺序,如果降序则改为
2024-12-08 12:22:15
926
1
原创 一文解决指针疑难杂症
对于内存地址的理解,变量被装进内存这个格子中。就好比我们每个人都是一种变量,而我们住的房子就是内存,我们的房子有自己的编号便于我们和别人查找,这便是地址。而计算机中,内存和地址是不分家的。下面我们看一段代码理解一下注意看运行结果,是,我们通过ptr这个指针,找到了val的地址,并对val进行下一步操作,相当于一张地图,相当于我们拿着地图到了具体位置,开始具体活动了ptr只保存了num的地址,再往后走就是一块未知的区域了。
2024-11-18 20:09:31
1052
原创 【内功】函数栈帧的创建与销毁
函数栈帧(stack frame):函数调用过程中在程序的调用栈(call stack)所开辟的空间。函数参数和函数返回值临时变量(包括函数的非静态的局部变量以及编译器自动生产的其他临时变量)保存上下文信息(包括在函数调用前后需要保持不变的寄存器)二、函数栈帧的创建和销毁解析。
2024-11-17 16:28:50
6046
1
原创 拒绝废话,四万字帮你快速打通C语言的任督二脉(已完结)
C语言与底层机器开发关联很大,是一种面向过程编程语言,什么是面向过程?简单点来说就是把一个事情拆分成几个步骤,逐一从上到下编译执行。C语言(计算机编程语言)_百度百科 (baidu.com)这个网址是有关C语言的简述,大家自行查阅//num = 2;//已经是常量,无法修改,这行代码会报错return 0;在现实生活中我们的具体地址是不会随意泄露的,而计算机中的地址也是,这时就需要一个工具来查找具体地址了,这便是指针。指针是一种特殊的变量,指针不存在具体的数值,指针只储存数据的地址。
2024-05-02 11:13:26
11336
7
原创 利用二维数组模拟农场作物成熟
农场相当于是一个矩阵,我们可以自己设定农场的行数和列数。这里我们就以 10 * 10的矩阵为例来作为农场。农场布置完之后怎么表示空地,作物,成熟作物?这里我们就用ASCII码里的符号来表示:用“ . ”代表空地,用“ * ”代表已种植的作物,用“ # ”代表已成熟的作物。把基本的内容确定之后,怎么实现农场图画?定义一个二维数组,遍历数组中的每个元素,这个操作将农场布置出来模拟农作物成熟过程需要时间间隔,这时我们就需要Sleep()函数来实现时间间隔。
2024-03-13 23:21:57
467
2
原创 用电路遥控LED灯案例彻底搞懂位操作符
在实验开始时先学习位操作符的计算方法,请记住:位操作符是对二进制整数进行操作记住一个口诀:同时为1才为1 其实也很好理解,1为true,同时为true才为true举个栗子:a = 12 b = 25a的二进制数为1100b的二进制数为11001a & b的结果是什么呢,按照口诀来计算代码运行也没有错误注意观察这个计算方法,思考一下&有什么实际意义?将一个数特定位置清零检查某数特定位置是否为1大家可以自己尝试一下。
2024-02-26 23:50:01
501
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人