- 博客(30)
- 收藏
- 关注
原创 Stack vs Queue : 数据结构中的“顺序”之争
基本概念栈是一种**后进先出(Last In, First Out, LIFO)**的线性数据结构,类似于一叠盘子:最后放上去的盘子会被最先取走。Stack 的文档介绍Queue 的文档介绍队列是一种**先进先出(First In, First Out, FIFO)**的线性数据结构,类似于现实中的排队:先到的人先获得服务。priority_queue 的文档介绍1. 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。
2025-02-18 14:43:44
764
原创 链表的‘跑酷’:C++ list 如何在数据中自由穿梭?
list是一种数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点(以及前一个节点)的指针。在C++中,std::list是一个双向链表,这意味着每个节点既可以向前也可以向后查找。list的文档介绍http://www.cplusplus.com/reference/list/list/?
2025-02-12 15:30:30
1050
原创 C++ Vector : 从青铜到王者的动态数组完全征服指南
vector的文档介绍在文档中详细解释了什么是vector,以下是我对vector的理解vector本质上是一个动态数组,具有以下特性动态性:无需手动管理内存,可动态扩容或收缩。连续内存布局:元素连续存储,支持快速的随机访问和迭代。内置优化:提供高效的插入、删除和随机访问操作,某些操作可在O(1)时间完成。
2025-02-08 23:23:49
1067
原创 STL:让C++代码量砍半的『禁忌魔法』?
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。
2025-02-05 23:32:30
456
原创 C++继承:如何让代码‘继承‘百万家产?
下⾯我们看到Person是基类,也称作⽗类。Student是派⽣类,也称作⼦类。(因为翻译的原因,所以既叫基类/派⽣类,也叫⽗类/⼦类)
2025-01-17 00:10:23
713
原创 C++:string类:你80%的C++字符串操作都错在这!
本文不做具体说明,请看官方的文件string的介绍需要注意的是在使用String时必须写头文件#include 和using namesplace std。
2024-10-30 11:32:18
783
原创 C++内存修罗场:new/delete的100种死法
int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间//还会调用构造函数和析构函数free(p1);delete p2;//内置类型也是一样的free(p3);delete(p4);free(p5);return 0;new原理1.调用operator new函数申请空间。
2024-10-20 16:23:57
826
4
原创 类与对象:C++世界里的‘仿生人“制造指南“
• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。• C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是。
2024-09-11 12:36:07
1188
2
原创 C++:入门基础
• 定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。• namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。• C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响。
2024-08-04 21:03:29
1320
原创 数据结构:二叉树的链式结构及代码实现
在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。注意:上面的代码不是真正创建二叉树的代码 ,真正的创建二叉树的代码在后面重点讲解。再看二叉树基本操作前,再回顾下二叉树的概念,二叉树是::根结点,根结点的左子树、根结点的右子树组成的。
2024-07-07 19:21:48
877
原创 分支switch语句,while,for,do-while循环
除了if语句外,c语言还提供了switch语句来实现分支结构。switch语句是一种特殊形式的if...else结构,用于判断条件有多个结果的情况。根据变量a不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支。注意:switch后的表达式必须是整形表达式case后的值,必须是整形常量表达式。
2024-03-21 20:25:54
1789
1
原创 c语言:if语句和操作符
c语言是结构化的程序设计语言,这里的结构指的是顺序结构,选择结构,循环结构,c语言是能够实现这三种结构的,我们可以使用if,switch实现分支结构,使用for,while,do while实现循环结构。此篇文章只介绍if语句和switch语句,循环语句在下一篇博客中介绍,好了,正文开始。1.1 ifif语句的语法形式如下:如果表达式成立(真),则语句执行,如果表达式不成立(假),则语句不执行。
2024-03-17 09:14:57
1049
3
原创 scanf,输入函数
每回按下回车以后,scanf()就会开始解读,如果第一行匹配第一个占位符,那么下次按下回车键,就会从第二个占位符开始解读。上面示例中,格式字符串%d%d%d%f,表示输入的前三个是整数,后一个是浮点数,把这4个数分别放到a,b,b,c,i 中。另外,用户使用回车键,将输入分成几行,也不影响解读。上面所有占位符之中,除了%c以外,都会自动忽略起首的空白字符,%c不忽略空白字符,总是返回当前的第一个字符,scanf()处理用户输入的原理是,用户的输入先放入缓存,等到按下回车键后,按照占位符对缓存进行解读。
2024-03-15 21:23:27
2046
1
原创 强制类型转换,printf和scanf详解
2.1printf2.1.1基本用法printf()的作用是将参数文本输到屏幕。它名字里的f代表format(格式化),表示可以定制输出文本的格式。上面的指令会在屏幕上输出一行文字“Hello World"printf()不会在末尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行。为了让光标移动到下一行的开头,可以在输出文本的末尾,添加一个换行符\n。
2024-03-12 17:20:49
2042
1
原创 操作符详解
分别是+ - * / %,这些操作符都是。注:操作符也被叫做运算符。+和-分别来完成加法和减法+和-都是有两个操作数的,位于操作符的两端的操作数,这种操作府也叫运算符*来完成乘法运算运算符/用来完成除法运算除号两端是整数,得到的结果也是整数.上述实验变量 a为double类型,但是结果是1.0,而不是1.5。原因就是在c语言中整数除法是整数,只会返回整数部分,丢弃小数部分。如果希望得到浮点数的结果,这时c语言就会进行浮点整除法。上面示例中6.0/4表示进行浮点数除法,结果就是1.5。
2024-03-09 11:01:00
645
1
原创 signed和unsigned,变量
char类型默认是否带正负号由当前系统决定,也就是说char可能等于signed char 或者等于unsigned char。例如,16位的signed short int 的取值范围为-32768—32767,最大是32767。整数变量声明为unsigned的好处是,同样长度的内存能够表示最大的整数值, 增大一倍。全局变量的使用范围更广,整个工程中想要使用,都有办法使用的。局部变量的使用范围比较局限,只能在自己所在的局部范围内使用。c语言中把经常变化的值称为变量,不变的量称为常量。
2024-03-05 17:45:34
569
原创 c语言数据类型
sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long ,甚至是应的 printf() 占位符分别是 %u 、 %lu 和 %llu。这样不利于程序的可移植性。每一种数据类型都有自己的长度,使用不同的数据类型,能够创建长度不同的变量,变量的长度不同,存储的数据范围就有所差异。
2024-03-02 11:36:15
435
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人