自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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