自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 缺省和重载.引用——初识c++

在声明和定义分离的情况下,那么是在声明处缺省,还是在定义处缺省呢?//stack.h头文件下的定义//stack.cpp下的声明应该在头文件下的定义处缺省,因为在运行时,要包含的是头文件,程序在编译的时候会展开头文件,这时候就可以进行缺省调用。而且在声明处还可以判断语法是否正确如果在定义处缺省,那么在第3个情况下就会出现参数太少的报错情况,达不到缺省。如果声名与定义位置同时出现缺省,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。出现重定义报错。

2024-03-26 16:46:16 683 8

原创 命名空间——初识c++

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。编译器搜索原则先局部域后全局域,如果指定了,就去指定区域搜索,使用命名空间我们就可以解决之前rand与我们定义的rand命名冲突的问题了。

2024-03-20 22:29:56 1635 42

原创 Linux调试器-gdb的使用

因为debug版本带了调试信息,所以debug版本的存储大小略微比relase大,同时因为带了调试信息,所以给用户使用的是relase版本,在debug的情况下,编译器形成可执行程序的时候,会给可执行程序添加条件信息。但是这会直接把程序从开头运行到结束,达不到调试的效果,我们首先要打断点。Linux gcc/g++出来的二进制程序,默认是release模式。当我们将断点关闭后,再次运行代码直接跑到了第6行,也就是编号3断点处。默认10行,gdb会自动记录最近执行的命令,想全部打印,直接回车。

2024-03-19 19:00:44 926 5

原创 Linux使用git命令行教程

当我们执行git add的时候,其实是把本地变化的文本,从本地提交到git 的暂存区,并不是全部提交,而是把仓库里的变化(增删改查)提交。首先我们需要注册gitee或者github的账号,接下来我用我的github账号作示例,网络条件不行的推荐国内的gitee。这时候,LInux就将远端刚才新建的空仓库拉取到本地了,因为仓库是公开的(开源的),所以可以直接拉取,否则需要输入账号和密码。.git文件就是本地的git文件仓库,用户不可以直接修改它(很有可能出问题),比如增删改查,必须用git工具去更改,

2024-03-13 18:57:25 1398 36

原创 Linux编译器-gcc/g++的使用

并且头文件可能也会包含头文件,所以可能会做一个递归程次的拷贝,这个过程我们称之为头文件展开,所以理论上只要经过预处理,头文件也就没有用到了。安装gcc或者g++时,首先会安装c和c++的头文件,而安装的时候,一般会安装到。对我们编译代码的时候,程序预处理时,会把头文件相关内容拷贝到源代码,,查看Test.i的时候就会发现代码发生了裁剪,中只有v1部分了。我们将Test.i打开查看,会发现里面多出来了很多东西,去掉lib,去掉后缀,就剩下了c,所以意味着c标准库。,查看Test.i,就会发现只剩下v1部分。

2024-02-29 13:20:25 1137 3

原创 Linux编辑器-vim使用

那么这些文件是怎么来的呢,在Linux中 ,ctrl + z`使程序暂停,而我们熟悉了Windows的撤销操作后,就特别容易误操作。vim为了防止用户误删除,vim在异常崩溃的时候或者被删除的时候,会默认在当前目录下创建一个临时文件,这个临时文件是可以被恢复的。该模式是我们后面用的最频繁的编辑模式。在命令模式下先ctrl+v,然后hjkl继续区域化选择,选择要注释的行后数入大写i(shift+i),进行。在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

2024-02-29 10:42:41 1273 1

原创 yum指令——Linux的软件包管理器

1.在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.2.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装3.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

2024-01-28 11:39:20 1489 26

原创 归并排序和计数排序讲解

本文将深入介绍归并排序和计数排序这两种经典的排序算法,分别从递归和非递归的角度,以及对于整数排序的特殊情况,展开讨论它们的原理和实现。通过深入了解归并排序和计数排序这两种排序算法的原理和实现,我们可以更好地理解它们的优劣势以及适用场景。选择合适的排序算法对于提高程序的效率和性能至关重要。希望本文的介绍能够为读者提供有益的知识,启发对排序算法的深入思考。晓风飞数据结构LinuxC语言。

2024-01-27 11:33:33 1366 31

原创 快速排序详解

排序算法是一个重要的主题。快速排序是一种经典的基于比较的排序算法,以其高效性而著称。本博客将深入介绍快速排序算法的基本思想,并探讨其三种不同的实现方法:Hoare分区、挖坑法和指针法。我们将逐步解释每一种实现方式,展示其工作原理以及如何选择适当的实现方法。

2024-01-27 11:32:14 1132 13

原创 插入排序和希尔排序

希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在好些树中给出的希尔排序的时间复杂度都不固定:希尔排序是插入排序的一种优化,通过引入间隔(gap)概念,对多个子序列进行排序,逐渐减小间隔直至为1。希尔排序的时间复杂度不易精确计算,但一般在O(n^1.3)左右。

2024-01-26 11:25:24 1289 25

原创 AI对决:ChatGPT与文心一言的比较

ChatGPT和文心一言各有所长,适用于不同的需求和场景。ChatGPT以其多语言支持和广泛的知识库在全球范围内表现出色,而文心一言则可能在处理中文内容和本地化应用方面占据优势。展望未来,我们期待看到这些AI工具在智能性、准确性和用户体验上的持续进步,更好地服务于全球用户。同时,我们也应保持对人工智能发展的审慎乐观态度,特别是在处理伦理和社会影响方面,确保技术的进步能够与人类的福祉和社会的整体利益保持一致。

2024-01-16 15:27:03 14986 175

原创 二叉树:从基础结构到高级遍历技术

在数据结构中,二叉树因其在搜索、排序和平衡等操作中的高效性而显得尤为重要。在这篇博客文章中,我们将深入探讨二叉树的概念,探索它们在C语言中的实现,并了解它们的实际应用。

2024-01-15 23:17:26 1083 28

原创 堆排序——高效解决TOP-K问题

堆是一种特殊的完全二叉树,其中每个父节点的值都大于或等于其子节点的值(最大堆),或者每个父节点的值都小于或等于其子节点的值(最小堆)。在堆排序中,我们通常使用最大堆。TOP-K问题是指在一个大数据集中找到前K个最大或最小的元素。这个问题在多个领域都非常常见,比如排名、选举、统计和游戏等。常见的例子包括找到考试成绩中的前10名、世界500强企业或者游戏中最活跃的100名玩家。当数据量非常大时,简单的排序方法可能会因为数据量超过内存限制而变得不可行。此外,完整的排序操作的时间复杂度为O(nlogn)

2024-01-14 21:30:08 1366 44

原创 二叉树与堆的深度解析:数据结构中的关键概念及应用

在计算机科学的丰富和多样的领域中,数据结构扮演着核心角色。特别是树和堆,作为高效组织和处理数据的关键结构,它们在算法设计和系统实现中占据着重要位置。从文件系统的层次组织到优先队列的管理,理解这些结构的基础原理对于深入掌握计算机科学至关重要。本文旨在深入探讨树和堆的基本概念、性质及其在实际中的应用,为初学者和有志者提供一个明确的理解路径。在孩子兄弟表示法中,每个节点存储两个指针:孩子指针:指向该节点的第一个孩子。兄弟指针:指向同一父节点的下一个兄弟。// 第一个孩子结点// 指向其下一个兄弟结点。

2024-01-07 23:50:23 2768 86

原创 深入理解堆(Heap):一个强大的数据结构

在计算机科学中,堆(Heap) 是一种非常重要的数据结构,广泛用于各种应用,从数据分析到算法优化,再到系统编程。堆的一个关键特性是其能够快速找到一组数中的最大或最小值。但是,什么是堆?如何在实际编程中实现和使用堆呢?// 指向堆数组的指针// 堆当前的大小// 堆的最大容量} Hp;这里,是一个指向动态分配数组的指针,该数组用于存储堆中的元素。size表示堆中当前元素的数量,而capacity是数组的最大容量。

2024-01-07 21:32:32 1722 28

原创 设计循环队列——oj题622

首先,我们定义一个名为int *a;// 队列中的元素数组int k;// 队列的最大容量int front;// 指向队列头部元素的指针int back;// 指向队列尾部的下一个位置的指针在这个结构体中,a 是一个整型数组,用来存储队列中的元素。k 表示队列的最大容量,front 和 back 分别表示队列头部和尾部的指针。

2024-01-05 23:13:54 1442 23

原创 用队列实现栈oj题——225

初始化两个队列,这两个队列将用于模拟栈的行为。// 定义一个使用两个队列模拟的栈的结构体Queue q1;// 第一个队列Queue q2;// 第二个队列} MyStack;

2024-01-04 13:38:50 1151 34

原创 用栈实现队列oj题——232

首先,我们定义了栈的结构体 ST,它包含一个指向数组的指针、一个表示栈顶的变量和一个表示栈容量的变量。然后,我们定义了队列的结构体 MyQueue,它包含两个栈 s1 和 s2。// 使用两个栈实现的队列结构体定义ST s1;// 第一个栈,用于入队操作ST s2;// 第二个栈,用于出队操作} MyQueue;

2024-01-04 13:37:06 918 4

原创 有效的括号oj题——20

当解决使用栈来检查字符串中括号平衡的问题时,主要思路是遵循左括号与右括号的配对规则。我们使用一个栈来跟踪所有未闭合的左括号,并在遇到相应的右括号时检查是否有匹配的左括号。以下是详细的解题思路:

2024-01-03 23:38:02 952 16

原创 Linux 权限掌控术:深入探索和用户管理

在这篇博客中,我们将深入探索 Linux 权限系统,这是理解和有效管理 Linux 系统的一个关键组成部分。Linux 权限系统为系统安全提供了强大的基础,它通过精确控制对文件和目录的访问来保护系统免受未授权的访问和更改。无论您是 Linux 新手还是经验丰富的系统管理员,掌握 Linux 权限的知识都是至关重要的。在这篇博客中,我们将详细介绍权限类型、特殊权限设置、权限的数字表示法,以及如何管理和应用这些权限。我们的目标是提供一个清晰、全面的指南,帮助您理解和有效地使用 Linux 权限系统。

2024-01-01 18:41:58 3194 97

原创 数据结构-如何实现一个队列?逐步解析与代码示例(超详细)

在计算机科学中,队列是一种非常基础且广泛使用的数据结构。它的工作原理类似于现实生活中的排队:先来的先服务(FIFO, First-In-First-Out)。在本文中,我们将深入探讨如何在C语言中使用链表实现一个队列,并解析相关的代码实现。该队列的实现基于两种结构:QueueNode 和 Queue。// 定义队列数据类型为int// 队列节点的结构体定义// 节点存储的数据// 指向下一个节点的指针} QNode;// 队列的结构体定义// 指向队列头部的指针// 指向队列尾部的指针。

2023-12-27 18:56:37 2176 79

原创 数据结构-如何巧妙实现一个栈?逐步解析与代码示例

栈是一个项的有序集合,其中添加(推入)和删除(弹出)项总发生在同一端,称为“栈顶”。他是后进先出的,就好像弹夹里面的子弹一样

2023-12-23 23:35:32 2211 51

原创 双向链表原来是这样实现的!

我会定期分享我的学习经验,也欢迎大家留言和交流,让我们共同学习和进步!双链表是一种由节点组成的数据结构,每个节点都包含一个数据域和两个指针域,分别指向前一个节点和后一个节点。这种结构为双链表带来了高度的灵活性,使其适用于各种复杂的编程场景。(ListNode)注意下述代码皆是:在SList.h头文件中定义函数在SList.c文件中实现函数在Test.c文件中函数测试}ListNode;SList.c文件中// 双向链表尾插// 将新节点插入到尾节点之后。

2023-12-18 22:10:13 1412 29

原创 初识Linux(下).妈妈再也不用担心我Linux找不到门了

我会定期分享我的学习和工作经验,也欢迎大家留言和交流,让我们共同学习和进步!系列文章初识Linux(2).妈妈再也不用担心我Linux找不到门了。初识Linux(1).妈妈再也不用担心我Linux找不到门了。如果您喜欢这篇博客,请分享给您的朋友和家人,也欢迎留下您的评论和反馈。您的支持是我继续分享和创作的动力。希望我们能在未来的博客中再次相见。祝您一切顺利,期待与您再次相会!

2023-12-02 12:14:13 2981 101

原创 初识Linux(中).妈妈再也不用担心我Linux找不到门了。

我会定期分享我的学习和工作经验,也欢迎大家留言和交流,让我们共同学习和进步!如果您喜欢这篇博客,请分享给您的朋友和家人,也欢迎留下您的评论和反馈。您的支持是我继续分享和创作的动力。希望我们能在未来的博客中再次相见。祝您一切顺利,期待与您再次相会!

2023-11-28 15:54:31 1673 84

原创 单链表原来是这样实现的!

我会定期分享我的学习经验,也欢迎大家留言和交流,让我们共同学习和进步!(Seqlist)在SList.h头文件中//这里只是指针,不是结构体}SLNode;如果您喜欢这篇博客,请分享给您的朋友,也欢迎留下您的评论和反馈。您的支持是我继续分享和创作的动力。希望我们能在未来的博客中再次相见。祝您一切顺利,期待与您再次相会!

2023-11-26 22:32:57 1301 38

原创 初识Linux(上),看了这篇文章,妈妈再也不用担心我Linux找不到门了。

我会定期分享我的学习和工作经验,也欢迎大家留言和交流,让我们共同学习和进步!今天是加入csdn的第365天,也是努力成为大佬第的30天,以此篇纪念,路漫漫其修远兮。Tips如果您喜欢这篇博客,请分享给您的朋友和家人,也欢迎留下您的评论和反馈。您的支持是我继续分享和创作的动力。希望我们能在未来的博客中再次相见。祝您一切顺利,期待与您再次相会!

2023-11-24 22:29:54 2086 112

原创 基于顺序表实现通讯录

功能要求1)至少能够存储100个人的通讯信息2)能够保存用户信息:名字、性别、年龄、电话、地址等3)增加联系人信息4)删除指定联系人5)查找制定联系人6)修改指定联系人7)显联系人信息。

2023-11-23 00:00:52 307 41

原创 用平板当电脑副屏(spacedesk)双端分享

大家可以用板子在OneNopte上试试流畅度,非常的nice。下载软件spacedesk Driver Console。这时候我们就可以发现系统主动弹出来提示,点击确定就ok了。推荐使用有线连接,接下来介绍usb连接教程,非常简单。如果进不去可以考虑百度网盘->

2023-11-20 19:49:35 7028 29

原创 顺序表基本操作全面解析

静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以我们实现动态顺序表

2023-11-20 15:07:33 531 40

原创 整数和浮点数在内存中的存储方式

整数的2进制表表法有三种,即原码、反码和补码由符号位和数值位两部分组成,符号位的0表示“正”,1表示“负”正整数的原、反、补码都相同。负整数的三种表示方法各不相同。原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。补码:反码+1就得到补码。对于整形来说:数据存放内存中其实存放的是补码。

2023-11-17 23:05:52 239 4

原创 c语言——结构体

在学习结构体之前,我们先来了解一下什么是内置类型和外置类型当内置类型不能满足的时候,支持自定义一些类型结构体枚举联合体数组接下来我们来介绍自定义类型中的结构体。

2023-11-06 08:59:03 99 8

原创 字符函数和字符串函数你还没有拿下?快来看看这篇

全都是干货,超级细节,如果不细节,晚上8.30,是兄弟就来砍我以上就是今天要讲的内容,文字符函数和字符串函数的使用。主要掌握strlen的使用和模拟实现, strcpy的使用和模拟实现,strcat的使用和模拟实现,strcmp的使用和模拟实现制作不易,望大家给个三连!

2023-11-01 19:15:53 954 19

原创 速度了解C语言操作符

的2进制表示方法有3种即原码,反码,补码3个表示方法均有和符号位中用正整数的原、反、补码都相同。负整数的三种表⽰⽅法各不相同。

2023-10-29 20:01:03 121 11

原创 C语言——字符串旋转方法

用库函数来实现,先创建一个字符数组,用strcpy拷贝K后面的字符到tmp再用 strncat函数来拼接k前面的字符来实现旋转,最后再用strcoy拷贝tmp数组全部的内容到str数组。单独把前面的第一个字符拿出来,后面的字符依次前移,最后把原来第一个字符放到原来最后一个字符,如果旋转k个字符,就循环k次。实现字符旋转下图为右旋3个字符的图例。

2023-10-29 12:25:34 334 2

原创 C语言——指针(3) (超详细)

字符指针变量//不是将abcdewfghi\0字符串存放到p中,而是将首字符a的地址存储在p中//"abcdefghi" 是一个常量字符串,是不能被修改的//b = 2+3;//表达式都有2个属性:值属性,类型属性//2+3 值是5/ //2+3 int//*p = 'q';其中pc就是字符指针变量,字符指针变量是用来存放地址的,const char* p = "hello “abcdefghi”;

2023-10-24 19:08:32 296 8

原创 c语言——指针(2)

用&arr[0]拿到数组第⼀个元素的地址,与数组名一起比较一下可以发现&arr[0]和arr 和&arr输出的结果相同结论:数组名就是数组首元素(第⼀个元素)的地址。运行结果如下:可以发现:&arr[0]和&arr[0]+1相差4个字节,arr和arr+1 相差4个字节,而&arr和&arr+1相差40个字节&arr[0] 和 arr 都是首元素的地址,+1就是跳过⼀个元素。而&arr+1跳过了10个元素相当于跳过了数组所有元素。

2023-10-19 18:45:53 190 1

原创 c语言——指针(1)

1.在计算机中为了方便管理内存,内存会被划分为以字节为单位的内存空间,也就是说一个内存单元的大小是一个字节为了方便找到这个内存单元,我们会给每个内存单元一个编号,就像生活中每个房间都有门牌号有了内存单元的编号,就可以快速找到内存单元所以我们可以理解为:编号 =地址 =地址在c语言中也被称为指针。

2023-10-17 11:50:27 160

原创 解决IDEA2023新建文件中没有Servlet

今天将IDEA从2022更2023新到发现IDEA中的新建中没有Servlet解决方法如下:1.在设置中选中编辑器2.选择文件代码模板3.选择其他选项卡中的WEB4.选择Servlet Annotated Class.java,并复制右边全部代码5.再回到文件选项卡,单击左上角的+按键6.将代码复制到右边,并且命名,点击确定7.然后我们就可以发现新建中有了Servlet这个名字是可以你自己决定的,相当于你自己创建了一个Servlet的代码模板

2023-10-12 19:55:51 4246 4

原创 errno: -4058报错 npm ERR! code ELIFECYCLE npm ERR! errno 1

在环境变量Path中添加C:\Windows\System32成功解决。最后发现是环境变量没有配置好。经过查阅,怀疑是权限问题。

2023-10-12 19:35:07 502 1

空空如也

空空如也

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

TA关注的人

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