自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++----简单了解vector

今天我们来讲讲与string相似的向量类型。之所以说他们是相似的原因是他们其中的数据类型有些效果都是一样的。当然大家不能说,既然是差不多的干嘛还有一个这个啊。不如直接用string就可以了。当然世界名言存在即合理。既然我们都能想到的东西,那些创始人大佬肯定也能想到这些。我自己认为的话:vector 是一个类模板,编译器根据模板创建类或函vector 就是根据模板创建了若干 string 对象,而 string 本身可以包含字符串,字符串可以视为若干个字符,即,vector 可

2024-08-28 22:49:36 851 5

原创 string类接口实现

所以,如果你传的是个结构体、类的实例,或者你的项目对响应时间和内存有严格要求,就应该用引用而如果你要使用类似辗转相除法求最大公约数,那直接把传进来的两个形参相除反而不需要额外定义变量(4)第四个,大家肯定很熟悉了,就是我们所说的虚构了,就相当于将它里面的数据全部化为零吧,这个大家很熟悉了,然后我们就接下来实现一下,大家看一看过程是如何实现的。最后呢我们的呢其实也就很简单,就只是上面的一个变形而已,我们只需要将里面的最后判断符换为我们的是否是换行就可以了,其实这个也是相当于上面的一个简化版的。

2024-08-23 12:17:58 928 13

原创 c++----简单了解string

听名字大家可能会比较懵。什么叫做范围for。看字面意思来说好像就是一堆for循环在一起,那么就叫做范围for。但其实1:对于一个有范围的集合而言,由程序员来说明循环的范围是多余的,有时候还会容易犯错误。因此C++11中引入了基于范围的for循环。for循环后的括号由冒号“ :”分为两部分:第一部分是范围内用于迭代的变量,第二部分则表示被迭代的范围,自动迭代,自动取数据,自动判断结束。2:范围for可以作用到数组和容器对象上进行遍历3:范围for的底层很简单,容器遍历实际就是替换为迭代器,这个从汇编层也可以看

2024-08-19 09:17:02 1096 10

原创 c++----初识模板

对于我们的函数模板,它代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。已就是说。我们的c++模板不会受到参数类型的限制,只要我们写的参数个数正确就可以了。虽然我这里很简单说,只需要确定参数个数就可以了。但其实也真的很简单。

2024-08-08 11:04:32 882 21

原创 c++----内存管理

​大家对我们在c学习的动态内存开辟的几个关键词还记得吧。就是malloc/calloc/realloc/freed这些知识对本篇博客是没有太多影响,但是如果我们大家如果想温习一下的话大家可以点击下面的链接:C语言----动态内存-CSDN博客。但是我们也说过了这些暂时对我们这篇博客没什么影响。我们今天讲的是这些的升级版。不仅使用方便而且更简洁。那么我们就废话少说先看看如何使用。

2024-08-04 20:39:42 1115 13

原创 c++----类与对象(下)

之前我们实现构造函数时,初始化成员变量主要使⽤函数体内赋值,构造函数初始化还有⼀种⽅式,就是初始化列表,初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,每个"成员变量"后⾯跟⼀个放在括号中的初始值或表达式。

2024-08-01 16:51:28 1129 14

原创 c++----日期类

那么上面呢就是我们的这些结果了。其实仔细思考一下其实是不难的,无非就是大家刚开始对c++的知识不熟悉,所以有时候会思考很多。其中对于天数对比的有快捷方式的时候,大家需要多思考一下,在我们实现快捷方式之前至少要写出两个式子才能进行快捷方法,你至少要写一个等于和一个大于或者小于,这样才能快捷的写出其他的。大家如果想要我的博客代码的话,可以点击下面的链接。7月29号博客: 博客的代码以及日常练习。

2024-07-29 13:14:25 753 23

原创 c++入门----类与对象(中)

首先我们学习的是我们的默认函数。不知道大家刚读这个名词是什么反应。默认就是认为应该这样是吧。那么正式一点解释是默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。大家可以直接理解为编译器自动生成的函数。不知道大家是否会想到,既然编译器已经为我们生成了,那么我们干嘛还有自招麻烦啊。干嘛要学啊。其实刚开始的时候我就是这个思想,我们干嘛还要学这个啊。明明都自动生成了,并且编译器一定比我聪明所以我就不写了自定义函数了。让编译器自己搞吧。但大家想想要是真的不重要的话,我们干嘛在这里写啊。是吧

2024-07-27 15:34:30 658 13

原创 c++入门----类与对象(上)

好了。在类定义这个小节里面我们讲了,如何创建类,类成员可以是哪些。和如何使用类。以及类与c语言中的结构体的一些差异。

2024-07-17 12:18:34 681 14

原创 c++初阶学习----入门(下)

大家对这篇博客主要是了解引用。因为这个确实是很好用。对我们后面的学习与使用也是很有帮助的。后面的知识点也有用。但是大家不必太着急因为我们这里才入门咧。后面还早,所以我们现在以了解为主,不用强逼自己完全熟知它的使用方法。

2024-07-11 12:42:44 554 15

原创 c++初阶学习----入门(上)

更加准确的说C++是在C语言的基础上发展而来的,它是完全兼容C语言的。大家还记得我们以前在vs里面创建项目的时候后缀打的是.c。当然写c++的代码vs还是适用的。只是后面我们创建c++项目的时候用的是.cpp了。

2024-07-09 19:56:45 866 12

原创 C语言----顺序表(含代码)

然后我们创建顺序表的时候,有两种方法,一种是动态的一种的静态的。然后嘞我这里是用动态的。所谓动态,就是边创建边使用,静态就是一下子就创建好了内存。这样的话明显动态的优势更大。那么我们也不多说其他的了。我们直接就来写写如何实现顺序表了。

2024-07-08 17:57:00 673 9

原创 简介空间复杂度

主要是大家需要了解一下和大概知道空间复杂度是如何计算的,这样就可以了。因为对于空间复杂度要求的话,其实题目还算比较少的,也像我们上面说过,除了一些在面试的时候需要考虑的话,至少我现在个人很少遇见对空间复杂度有要求的。总之大家还是需要了解一下如何计算嘛,然后这里就是今天这篇博客想与大家分享的吧。当然还有很多遗漏的东西,希望大家可以在评论区留言,然后我好补充。

2024-07-07 16:17:34 1065 4

原创 简介时间复杂度

好了,当大家看到这里我想应该就对计算时间复杂度有一些了解了吧。反正我一直用的都是带几个值进去计算一下。然后就可以得出一个大概的逻辑这样得出一个大概的就可以了。那么今天的时间复杂度计算就到这里了。下一篇我们会分享一下空间复杂度的计算。

2024-07-06 19:13:06 834 2

原创 栈实现队列与队列实现堆

好了,以上就是关于栈与队列相互实现的相关知识吧。当然这些有其中有很多可以优化的地方,大家可以细心的观察一下,然后呢其中关于这个博客大家其实可以相当于课后拓展,因为确实这样没必要把他作为一个非常重要知识点,大家只需要知道如何使用就可以了。最主要的还是需要大家熟练使用对业余战的单个的相关知识来,希望这篇不太对大家会有帮助,然后今天的讲解就到这里了。

2024-07-05 11:57:22 887

原创 c语言----队列

好了,上面就是关于队列的大部分使用方法了。当然还有很多对于这个的延伸,这就可能会用在后面的题目上。后面的面试题之类的。那可以多尝试一下练题,然后就能加深一下对队列的一些的相关知识的巩固。那么接下来来我就这样所有的代码给大家看一下。}QueueNode;}Queue;assert(pq);assert(pq);free(cur);cur = next;assert(pq);exit(-1);else。

2024-07-04 16:16:29 1093 8

原创 判断单链表是否带环且返回节点

大家最主要的是了解这个代码的逻辑。这些代码实际上是运行起来其实没有太大的作用,最主要的是大家的逻辑能力能够得到有所锻炼,这相当于我们平常学习的有教学意义。实践的话可能没有多大作用。然后这上面就是我想与大家分享的知识了,然后肯定还有一些方法,但我不是很清楚,希望大家能在评论区里面留言。

2024-06-19 19:05:05 779 1

原创 排序进阶----归并排序,选择排序

总体来说归并排序就是将数组分化分化分化到只有一个元素的时候,我们是在合并比较合并循环。当然我们需要创建一个新的数组来存储,所以这就是归并排序的大概思路了。其实总体来说,大家只需要知道上面我们的那张图片的话就有一个大概思路了,然后可以以此发挥,从而把整个思路推出来。return;//递归分化到最小的那个元素去int be = l;//把区间确定下来int i = l;//表示合并的时候的数组位置while (be

2024-06-05 13:05:49 700 6

原创 排序进阶----快速排序

那么说明的就是我们快速拍摄的大概所有内容了。当然还有一种优化其实也是可以的,叫做挖坑法。这个如果大家感兴趣的话可以自己去了解一下。当然我的内容是不是很完全的。所以大家可以在评论区里面也说一下,自己感兴趣的话,我下一篇博客会补充的。

2024-06-01 23:53:26 599 3

原创 排序进阶----插入排序,希尔排序

大家可以想一下,我们如果以扑克牌为例,我们利用冒泡排序的话,每一个位置就要对比一下,这很麻烦,很耗时间的。但是如果我用插入排序的话,我们以第一个数为例,一次向后对比,如果他比接下来对比的数都大的话,那么我就先把战船一直比较比他更大的数,那么我就把它插入在前面。我们先从第一趟开始,比如说我们就先走第一趟,以下标为零开始的与下标为一对比,如果他比第一个大的话,那么这一趟就结束,我们就只循环一次。当然希尔排序其实是有一点困难的,大家需要多理解一点多看一下,其实相对还是比较简单的,只需要理解之后大家都能写出来的。

2024-05-29 09:32:42 1137 8

原创 我的创作纪念日

我成为创作者的初心更多的是为了满足自己对编程语言的热爱,因为从小就对电脑感兴趣。但是真的当自己可以天天玩电脑的时候,已经不在是当年的那个懵懂小孩了。在创作的过程中,除了将手速练了一下以外,让我更多的收获是我对我写的内容有了更多的人生和理解。因为当我写博客的时候,如果我自己都解释不清楚的话,给他人讲解的,那岂不是误人子弟嘛。毕竟代码功底这件事,还是需要时间的,当然也不能太久,现在市场对程序员的要求奇奇怪怪的。按理说是越年长越吃香的,但是现在裁的更多的是老人。如果非要说我认为自己写的满意的代码的话。

2024-05-26 23:55:16 290

原创 数据结构----堆的实现(附代码)

那么当我们了解了堆是什么之后,那么我们就来实现了。首先想堆栈既然这两个字都可以组成一个词了,那么我们实现堆可不可以用实现栈的方法来实现。所以我们首先要来定义一个结构体,来存放我们要放的东西和下标。为什么有下标嘞其实大家就理解为下一个数据的坐标嘛。毕竟堆是抽象的,不想我们数组那样用下标可以直接找,那么我们结构体只有这些嘛,我们数组建立是不是要需要确定它的起始容量,就算我们最开始不确定去起始容量,也需要确定它的数组内容。那么我们是不是需要在结构体里面确定好它的起始容量?

2024-05-25 17:53:14 925 1

原创 C语言----栈(附源代码)

那么接下来我们就尝试用代码来实现栈,我们知道栈这个东西首先要有吧。所以我们就先来创建栈。既然我们需要创建一个栈,就用结构体。结构体里面有什么东西嘞。我们就简单点首先要有内容吧。然后就是栈顶、栈底。因为我们上面写了入栈和出栈。int top;int base;}stack;以上就是栈的基本几个实现了。然后下面的栈代码的实现了。大家可以自取。#define STACK_INIT_SIZE 100 //栈的初始容量#define STACKINCREMENT 10 //容量增量//栈底指针。

2024-05-19 14:57:45 550 1

原创 C语言----斐波那契数列(附源代码)

各位看官们好,当我写了上一篇博客杨辉三角后,有一些看官叫我讲一下斐波那契数列。对于这个大家应该是有了解的。最简单的规律就是f(n)=f(n-2)+f(n-1)。就是当前是前两项之和,然后下标1和0都是1.从第三项开始计算的。那么我们知道规律,那么我们就直接来讲讲如何实现和实现方法有哪些吧。

2024-05-11 21:19:01 991 3

原创 C语言----杨辉三角

各位看官们好。学习到这里想必大家应该对C语言的了解也是很深刻的了吧。但是我们也不能忘记我们一起学习的知识啊。在我们以前学习C语言的时候我想大家应该都听说过杨辉三角吧。虽然我们把其中的规律找到那么这个代码就简单很多了。那么接下里我们就来讲讲杨辉三角。首先我们先来看看三角长什么样子:我们可以看到我们外围都是1,然后几行就有几个数这些是一眼能看出来的。然后就是我们看看每行数字左右对称,由1开始逐渐变大。(从第三行开始)被两边的 1 包围着的数据中,每个数等于它上一行前一列的数和上一行本列数之和。

2024-05-08 14:33:26 1293 2

原创 C语言----贪吃蛇(补充)

各位看官好,我想大家应该已经看过鄙人的上一篇博客贪吃蛇了吧。鄙人在上一篇博客中只是着重的写了贪吃蛇的实现代码,但是前期的一些知识还没有具体的介绍,比如确认光标位置,句柄等。那么我这一篇博客就来补充上一篇博客所留下来的坑吧。

2024-05-02 14:00:08 943 2

原创 C语言----贪吃蛇(附源代码)

因为我的贪吃蛇代码是阉割版所以与我们以前玩过的贪吃蛇是有一点差异的。但是大家还可以依据自己的想法进行优化和延伸。这里鄙人就简单的提供一下拙见,希望大家见谅。

2024-04-28 09:30:00 1581 3

原创 C语言----链表

那么大家知道创建一个链表节点如同火车要先把壳造出来,然后在天东西进去,那么我们要先定义好节点的“壳”。那么我们先创建一个头文件Slist.h和源文件Slist.c。一个是定义数据的,讲文明需要用到的库函数的头文件全部放进去。然后需要定义的东西也放进去。那么我们肯定还需要一个实现代码的文件,那么我们再创建一个源文件text.h。来实现我们的代码。好但我们创建好了这些前置条件后,那么我们就来看看这个单链表的定义。大家先看我们的主要知识,我们说单链表里面除了存放的内容外就是下一个节点的地址了。那么简单呀。

2024-04-23 14:00:00 826

原创 C语言----预处理(详解)

关于预定义符号,我暂时只知道几个。并且我知道的这几个对于我们现在还在学习阶段感觉没什么帮助,哈哈。我知道的这几个预定义符号应该对于我们以后工作时写日志,应该是有帮助吧。这个有什么作用还是等大家日后自己定夺吧,这里我就先给大家引出来。__FILE__ //进⾏编译的源⽂件__LINE__ //⽂件当前的⾏号__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义。

2024-03-31 11:58:30 1291 2

原创 C语言----简单讲解编译与链接

(关于什么是宏定义我们会在下一篇博客中讲解)•处理所有的条件编译指令,如:#if#ifdef#elif#else#endif。(这个条件编译我们也会在下一篇博客中写出的)•处理#include 预编译指令,将包含的头⽂件的内容插⼊到该预编译指令的位置。这个过程是递归进行的,也就是说被包含的头⽂件也可能包含其他⽂件。•删除所有的注释(这就说明编译器根本不管我们的注释,注释是为了我们使用者更加方便理解)•添加⾏号和⽂件名标识,⽅便后续编译器⽣成调试信息等。•。

2024-03-30 10:39:25 789 1

原创 C语言----简单文件处理

也就是说后缀是.c或者.obj,.exe的是程序文件。数据文件就是一堆数据。这个通俗易懂吧。好了,当我们知道什么是文件后,那么我们文件内容其实也是区分了的。比如我们都知道在C语言中存储中不改变什么的话,就是存储的二进制,因为0/1嘛最简单。但是不能只有1二进制啊。肯定还要有其他的。那么这个时候我们以前也学过的ascll码值就跳出来了。我们知道二进制无聊如何存储都只能是数字无法存储字符或者其他的但ascll码值就不一样了。可以存储字符和其他的特殊符号。所以我们可以根据数据的组织形式,数。

2024-03-28 09:15:00 659 3

原创 C语言----动态内存

学到这里了,大家应该对C语言的了解跟深一层了吧。我们C语言写代码不能只局限于直接写代码。我们要了解C语言的内存分布,我们都知道C语言的内存是有堆区,栈区,静态区的。然后栈区是我们平常创建临时变量存储的地方,静态区是我们全局变量,和静态变量。堆区就是动态内存了,并且我们今天讲的就是关于堆区的相关知识大家看一张图片可能会更加了解一些。

2024-03-23 09:30:00 1777 3

原创 C语言----内存函数

当我们学习了字符函数,那内存函数的我们肯定也是要了解的吧。但我们需要了解的是内存函数可在任意类型使用,字符串函数只能比较字符串,内存函数不关注’\0’, 只关注要拷贝的字节数。这是内存函数与字符串函数最明显的一个区别。那么内存函数大概有哪些嘞。我们可以先看一下memcpy(复制),memmove(复制),memset(设置内容),memcmp(比较)。这是鄙人现在知道的常见的内存函数。也许还有很多的函数,鄙人不知道。当然也希望大家可以在下方评论区留言。

2024-03-15 09:15:00 1845 4

原创 C语言————字符函数与字符串函数

在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数,如追加,拷贝,替换等等接下来我们就学习⼀下这些函数,并且自实现。

2024-03-10 10:00:00 921 2

原创 C语言----冒泡排序进阶

好,那么接下来我们就用代码来更加详细的讲解。不知道我的代码与大家想的是否有太多的不同之处。或者大家认为这样的代码还有地方可以简洁,大家可以在下方评论区不腻赐教。但其实大家看了上面的代码是否觉得有点啰嗦且繁琐啊。如果我们运气不好的话。这个代码我们要遍历36遍。空间复杂度是否有时候不好满足呀。并且我们如果后面改了,不用整型数组,我们有char类型数组的话。这个代码是不是就不能直接使用了。当然我们可以依照这个模板写一个char类型的冒牌排序,但是大家是否觉得再写一个的话,是否就有点太麻烦了。

2024-03-03 13:23:57 871 2

原创 C语言----联合体

不知道大家是否听说过联合体这个名词。但其实大家不用觉得联合体有多特殊,大家可以想象结构体是一栋楼,里面有很多房间,住了形形色色的住户(不用或者相同的数据)。但联合体只有一个房间,所有的住户都挤在这个房间里面。但是这个房间的大小是以最大数据类型来决定的。比如说我们创建了一个联合体,里面放置了int类型和char类型。那么这个联合体大小计算int类型的大小了。

2024-02-28 13:08:04 1246 3

原创 C语言————结构体

接下来我们来了解C语言中很重要的内容:结构体。虽然到现在我们可以创建常量,变量,数组,但是存储的都是相同类型的数据,如果我们需要写入不同数据类型的信息怎么办,例如常见的身份证上的信息,有身份证号,有地址,有名字,有照片。又比如一个学生的学习,有学号,姓名,年龄,等等。这样的话,如果我们还是以前那样一个数据创建一个的话,岂不是很麻烦,当我们需要将不同数据类型存储在一起的时候这就引出了 结构体。这样大家大概知道结构体是什么样子了吧。

2024-02-24 22:07:12 993 2

原创 c语言---数据在内存中的存储

看过上面的讲解大家应该知道大小端的区别,和如何区分大小端以及如何使用代码来判断自己的系统是大端还是小端存储了吧。那么我们接下里就将一个特殊有点的,浮点数的存储。至于是那些地方特殊嘞,我们来看看下面代码的运行结果(当然浮点数我们在前面的内容是讲过的不只用float还有double、long double)

2024-02-21 21:57:11 1216 2

原创 数据结构——二叉树

设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。鄙人:堆嘞,大家可以看到这个字,就是一堆东西,那么我们将一堆数据看作是完全二叉树的结构存储在一维数组中,如果这棵完全二叉树能满足所有的父亲节点都不大于它的孩子节点,那么这样的数据结构就叫做小堆,相反,如果所有父亲节点都不小于它的孩子节点,那么这个数据结构就叫做大堆。第二层最多有2的二次方减1个结点。

2024-02-16 22:21:04 981 2

原创 C语言操作符详解

各位看官们好,这是鄙人的第9篇博客了,这次我们来了解C语言中的操作符。虽然我们在前面的博客中已经提到过一些操作符了,这里我们来详细的写出C语言中的操作符了,并且新春之际,鄙人在这祝各位看官新年快乐!算数操作符(+ - / %)位移操作符(>)位操作符(& | ^与,或,异或)赋值操作符(=)单,双目操作符。

2024-02-11 22:29:50 1216 2

空空如也

空空如也

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

TA关注的人

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