- 博客(17)
- 收藏
- 关注
原创 【Cpp】指针与引用
在C语言中,我们对指针的规范并不严谨——我们常常会用void*来传入一个不知道其变量类型的指针,为了兼容CCpp允许这样的语法存在,但是,由于这样的指针不具有安全性,我们无法通过来解引用void*,这就需要用到我们的显式转换。为了方便看指针的引用而不是由一堆组成了参数和参数类型,我们采用引用来让这种写法变得更加简洁;
2024-11-17 16:59:42
935
原创 【Cpp】命名空间
全局变量和局部变量同名: 如果在全局作用域和局部作用域中都定义了同名的变量,那么在局部作用域中,全局变量会被局部变量遮蔽。// 全局变量// 局部变量,遮蔽了全局变量函数参数和局部变量同名: 如果在函数参数列表中定义了一个参数,然后在函数体中又定义了一个同名的局部变量,那么参数会被局部变量遮蔽。// 局部变量,遮蔽了函数参数宏定义和变量名冲突: 如果使用#define定义了一个宏,而这个宏的名字和某个变量名相同,那么在宏展开时可能会导致命名冲突。
2024-11-06 22:11:14
956
原创 数据结构与算法——第六讲:基本队列的实现
我们既然有了一种先进后出的数据结构,那存不存在一种数据结构类型可以出列后进后出的情况呢?答案是显然的,数据结构是为了解决生活中的抽象问题,而银行排队,早茶叫号等都是一种排队,我们把这种先进先出的数据结构类型称之为队列 队列是一种特殊的线性表,其特殊性体现在对数据元素的插入和删除操作的限定。 队列的特点是先进先出(First In First Out,FIFO),即第一个进入队列的数据元素将第一个被删除。队列的插入操作称为入队,队列的删除操作称为出队。
2024-11-06 10:55:11
1088
原创 【Cpp】STL中的Stack及使用案例
在计算机科学中,数据结构和算法是编程的基础。STL(Standard Template Library)是C++标准库的一部分,它提供了一系列高效、通用的数据结构和算法,使得程序员可以更加方便地进行软件开发。本文将介绍STL中的Stack(栈)数据结构及其使用案例。STL是C++标准库的一部分,它提供了一系列容器、算法和迭代器,使得程序员可以更加方便地进行软件开发。STL中的容器包括vector、list、deque、set、map等,算法包括排序、查找、替换等,迭代器则用于遍历容器中的元素。
2024-11-03 16:53:59
781
原创 数据结构与算法——第五讲:栈及栈的应用
这就像叠放在餐桌上的一叠餐盘,存取是只能在这叠盘顶部进行,最后放上去的盘子在最顶部,则最先使用,而最先放在桌子上的一摞餐盘(在这些盘子的顶部),则最先使用,再比如,在一条狭窄的道路上,先开进来的车发现无路可走,上无法掉头,后面上来的车又挡住了后退的路,这时要想退出去,后面的车则必须先退出去,显然最后进入这条断头路的车需要最先倒出去。
2024-11-02 17:30:00
1130
原创 数据结构与算法——第四讲:静态链表及双向链表
C/Cpp系列具有指针,使他可以非常容易地操作内存中的地址和数据,虽然如Java,C#等不使用指针,但启用了对象引用机制,某种程度上来说也间接实现了指针的某些作用。但对于一些基层的语言,如更早期的Basic、Fortran等早期高级语言,没有指针的概念,链表如果按照我们之前的说法并没有办法实现。这就是我们接下来三分之一的篇章——静态链表。它解决了在没有指针存在的情况下对静态链表的实现,为什么叫静态?
2024-11-02 16:00:00
972
原创 数据结构与算法——第三讲:单向链表
上一节中我们学习了typedefmalloccalloc和realloc关键字,以及对于结构体struct的应用,以及最重要的就是我们学习了什么是顺序表,以及顺序表如何实现,如何通过结构体来完成对顺序表的一个初步使用,但是,不得不提的一点是,我们会利用assert宣言来判断指针是否为空,以及对于一个简单的顺序表的一个完成,但是我们会发现,由于数据的增多,头删、头插都会因此而变得时间复杂度更为乱,不恒定,这个时候我们就引如这一章的主题——链表。
2024-09-15 09:00:00
1232
原创 【C/Cpp】在C中的Cpp
由于我们对Cpp的框架还不够了解,在此我这一篇章进行对Cpp语法的拆分(没错,这个Cpp的坑也算是填起来了),Cpp对于学过C的人来说好像似曾相识,两种差别并不是很多,但是为何Cpp有了如此高效的效率?Cpp对C的特征进行了一些修改,Cpp更为复杂的特性将会在后面中介绍。数据类型(datatype)定义使用存储空间(内存)的方式。通过定义数据类型,告诉编译器怎样创建一片特定的存储空间,以及怎样操纵这片存储空间。数据类型可以是内部的或抽象的。内部数据类型是编译器本来能理解的数据类型,直接与编译器关联。C和。
2024-09-15 00:24:33
1029
原创 数据结构与算法——第二讲:线性表【顺序表】
我们这一章节中学习了typedef、malloc,calloc和realloc关键字,以及对于结构体struct的应用,以及最重要的就是我们学习了什么是顺序表,以及顺序表如何实现,如何通过结构体来完成对顺序表的一个初步使用,但是,不得不提的一点是,我们会利用`assert`宣言来判断指针是否为空,以及对于一个简单的顺序表的一个完成,但是我们会发现,由于数据的增多,头删、头插都会因此而变得时间复杂度更为乱,不恒定,这个时候我们就引如下一章的主题——链表,栈,以及队列。
2024-09-08 19:48:04
1180
原创 数据结构与算法——第一讲:数据结构与算法的简单定义
这章我们讲了数据类型的定义,它是由相互之间存在一种或者多种特定关系的数据元素的集合,也讲了数据结构与算法的密切关系,如果不言算法只谈数据结构,当然是可以的,但是就跟《梁⼭伯与祝英台》不谈“祝英台”一般,我们便觉得好像少了什么。以及一些算法关于时间复杂度、空间复杂度的讨论。
2024-09-03 10:09:39
1178
原创 【C语言/C++】函数,形参与实参
我们注意到,实际上#include和#include本质上就是封装了许许多多代码段综合而成的,编译后产生的是许多行stdio.h和iostream所包含的代码;而我们将这种使用一个“压缩包”把许多段代码段封装的“压缩包”称为函数,而#include是函数的一种,我们称之为库函数。
2024-05-09 21:26:18
1427
原创 [C语言]贪心算法——以蓝桥杯第十五届B组G问题爬山为示例
最经典的问题莫过于找零问题:假设我们有46元,怎样用面值分别为[20,10,5,1]的纸币,同时满足最少的张数来找零换句话说,就是如何最快的方法凑到46?不难发现,最优策就是选择两张20,一张5元,一张1元,总共4张——优先以最大的面值来确认,达到局部最优,我们也不难发现,此时的局部最优就是全局最优。
2024-04-17 11:17:20
762
1
原创 【C语言】指针(2)——数组指针,指针数组
之前我们学习了指针数组,指针数组是⼀种数组,数组中存放的是地址(指针)。数组指针变量是指针变量?还是数组?答案是一个稍微绕口的名字——指针变量。• 整形指针变量: int * pint;存放的是整形变量的地址,能够指向整形数据的指针。• 浮点型指针变量: float * pf;存放浮点型变量的地址,能够指向浮点型数据的指针。存放的应该是数组的地址,能够指向数组的指针变量。数组指针变量p先和*结合,说明p是⼀个指针变量,然后指着指向的是⼀个⼤⼩为10个整型的数组。所以p是⼀个指针,指向⼀个数组,叫。
2024-04-10 08:15:00
760
1
原创 【C语言】指针(1)——指针变量的操作
在计算机的底层逻辑中,CPU和内存之间通过数据总线来传输数据,把数值存储到地址中。指针是一种变量,通过存储地址来调用数据,根据调用方式的不同,分别为值传递,址传递。
2024-04-10 08:00:00
1275
1
原创 分支与循环(下)
书接上文,c语言是结构化的程序设计语言这里的结构指的是,许多实际生活中的问题是由这三者本身或者三者结合起来的,在c语言中,是利用forwhiledo-while实现循环结构的。我们在上一篇文章中讲了选择结构,我们这一篇就从循环结构开始说起:c语言提供了3中循环语句,while就是其中一种;while与上文讲述到的if语句有相似性;那么不难得出是“Ice-cream实际上就是I scream”满屏幕循环,(但是看需求,因为程序设计是由需求诞生的)
2024-01-29 16:50:43
859
原创 分支与循环(上)
在一些程序中,我们可以借用||来达成代码的简洁,代码的简明性是我们在撰写程序必须要坚持的,这可以让程序看起来更容易阅读,在必要的时候使用关系操作符,可以减少程序步骤,但是如果应用不当会让人阅读产生疲倦(下面是我自己的错误例子)可以发现我们的程序确实能满足我们的需求,但是此时如果我们再在要求上添加一个“若不满足,则输出‘需要x元’”的要求,我们会发现我们能应用的语句很少,或者说单纯用if(price>money)又显得有点累赘,这时候我们引进一个else。可以看出,嵌套多个if语句的同时也可以使用if…
2024-01-28 16:28:03
917
原创 带专生的C语言作业题沉淀记录
if()的()中表示为条件,利用逻辑运算符||,&&,!先于“||”和“&&”,逻辑非(“!”)是逻辑运算符中优先级最高的;算术运算符,赋值运算符优先级均高于逻辑运算符;原题目:实现四位数的自然数前两位表示小时(如523表示为5小时23分,2344表示为23小时44分),并且计算距离。在printf()函数中,&表示取址运算,如若出现在一般表达的printf中会导致数据进行取址运算;||会导致短路现象,造成逻辑闭环,会使得程序无法进行下一步运行。
2023-10-28 15:00:40
97
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人