小song能吃能睡
码龄2年
关注
提问 私信
  • 博客:17,601
    17,601
    总访问量
  • 25
    原创
  • 96,788
    排名
  • 349
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 毕业院校: 咸宁职业技术学院
  • 加入CSDN时间: 2023-04-01
博客简介:

2301_77382158的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    250
    当月
    0
个人成就
  • 获得488次点赞
  • 内容获得30次评论
  • 获得436次收藏
创作历程
  • 23篇
    2024年
  • 2篇
    2023年
成就勋章
兴趣领域 设置
  • 编程语言
    c++c语言
  • 数据结构与算法
    算法数据结构
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

[linux] makefile&&gdb理解

3. 如果code文件不存在,或是code所依赖的后面的code.o文件的文件修改时间要比code这个文件新(可以用 touch 测试),那么,他就会执行后面所定义的命令来生成code这个文件。5. 当然,你的C文件和H文件是存在的啦,于是make会生成 code.o 文件,然后再用 code.o 文件声明 make的终极任务,也就是执行文件code了。2. 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“code”这个文件, 并把这个文件作为最终的目标文件。
原创
发布博客 2024.06.08 ·
769 阅读 ·
19 点赞 ·
0 评论 ·
26 收藏

[Linux]第一个小程序-进度条

我们在运行的时候会发现两段代码第一段 字符串先出来然后休眠三秒,第二段先休眠三秒再打印字符串。缓冲区:内存空间,我们先这么理解,后面深入学习的时候我们再具体学习。我们c语言在程序运行的时候会为我们默认打开三个标准的输入输出流。flush stream 特定的文件流的数据进行刷新。linux下一切皆文件,显示器自然也可以当一个文件来看待。程序结束的时候,一般要自动冲刷缓冲区。在我sleep期间,字符串在哪里?缓冲区满了,自动刷新,暂时不考虑。
,
之前的字符串立即刷新。换行:回到最新的一行。
原创
发布博客 2024.05.27 ·
311 阅读 ·
10 点赞 ·
0 评论 ·
3 收藏

【linux】g++/gcc编译器

我们在ubuntu里可以直接执行生成静态链接,但是在centos里可能会出现系统中没用静态库,导致静态链接失败的问题。在我们使用软件的时候我们会发现有不同的版本,有了条件编译,我们就可以只需要对一份代码跟据不同的功能条件编译进行动态裁剪,这样我们就仅仅需要一份代码就可以实现不同的功能。LDD用来打印或者查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。我们能看到我们的指令大部分都是采用动态链接的,所以一但动态库出现问题那么所有的指令都会出现问题。为什么要有库这个概念呢?
原创
发布博客 2024.05.22 ·
1740 阅读 ·
37 点赞 ·
0 评论 ·
41 收藏

【linux】yum&&vim工具理解使用

在Linux下安装软件一个通常的办法是下载到程序的源代码并进行编译得到可执行程序但是这样太麻烦了于是有些人把一些常用的软件提前编译好做成软件包可以理解成windows上的安装程序放在一个服务器上通过包管理器可以很方便的获取到这个编译好的软件包直接进行安装软件包和软件包管理器就好比"App"和应用商店这样的关系是Linux下非常常用的一种包管理器主要应用在Centos等发行版上2.Linux系统(Centos)的生态。
原创
发布博客 2024.05.15 ·
1831 阅读 ·
37 点赞 ·
0 评论 ·
50 收藏

【c++】string深度刨析以及实现

这种设计也是有一定道理的,大多数情况下字符串的长度都小于16,那string对象创建好之后,内 部已经有了16个字符数组的固定空间,不需要通过堆创建,效率高。注意:下述结构是在32位平台下进行验证,32位平台下指针占4个字节。检查引用计数,如果等于1,说明资源是自己独占的,不用拷贝。不是每个对象都会修改,拷贝后不修改就赚。故总共占16+4+4+4=28个字节。如果大于1,先拷贝再写,这就是写时拷贝。指向堆空间的指针,用来存储字符串。最后:还有一个指针做一些其他事情。反正都要拷贝,意义是什么?
原创
发布博客 2024.05.11 ·
357 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

【c++】----STL简介&&string

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架。
原创
发布博客 2024.04.28 ·
926 阅读 ·
30 点赞 ·
0 评论 ·
20 收藏

【linux】权限的概念

我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。c: 字符设备文件:在我们c语言中使用printf(“%d”,123),向显示器打印的时候是显示字符‘1’,‘2’,‘3’,还是123数字呢。,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。vip,门禁,就是通过一定的条件,拦住一部份人,给另一部分人的权力,来访问某种资源 有无 或者能还是不能的问题。
原创
发布博客 2024.04.28 ·
766 阅读 ·
26 点赞 ·
0 评论 ·
20 收藏

【Liunx】常见指令

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。1.指令的本质都是程序 ---- 指令,程序,可执行程序都是一回事 指令就是程序----那安装和卸载是在干什么呢?我们发现,当我们可以多创建几个显示,我们发现,当创建其他显示的时候,多出了文件2号,当我们输出重定向的时候,我们会发现把数据打印到2号显示里了。功能:touch命令参数可更改目录或目录的时间日期,包括存取时间,或者新建一个不存在的文件。
原创
发布博客 2024.04.08 ·
692 阅读 ·
18 点赞 ·
1 评论 ·
9 收藏

【c/c++】内存管理

如果申请的是内置类型的空间,new和malloc,delete和free基本类似,不同的地方是: new/delete申请和释放的是单个元素的空间,new[]和delete[]申请的是连续空间,而且new在申 请空间失败时会抛异常,malloc会返回NULL。,如果 malloc申请空间成功就直接返回,否则执行用户提供的空间不足应对措施,如果用户提供该措施 就继续申请,否则就抛异常。注意:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与 free不会。
原创
发布博客 2024.03.28 ·
776 阅读 ·
29 点赞 ·
0 评论 ·
26 收藏

【c++】类和对象(下)

如果想要让计算机认识现 实生活中的实体,用户必须通过某种面向对象的语言,对实体进行描述,然后通过编写程序,创 建对象后计算机才可以认识。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在 类的内部声明,声明时需要加friend关键字。内部类是一个独立的类, 它不属于外部类,更不能通过外部类的对象去访问内部类的成员。,参见友元类的定义,内部类可以通过外部类的对象参数来访 问外部类中的所有成员。友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员。
原创
发布博客 2024.03.18 ·
870 阅读 ·
21 点赞 ·
0 评论 ·
20 收藏

【c++】类和对象(中)

在这个程序中,我们调试时会发现在进入func1函数时(传值传参,将d1拷贝给d),会先进入他的拷贝构造函数,构造完成后才会进入函数,那怎么解决这个问题呢?如果我们再稍微不小心将程序写反了,那么会发现的d1和d2居然指向同一块空间了,一旦发生修改都被修改了,原因我们在这里传的是引用,在于d是d1的别名。编译器容易把握不住,如果我们在实现比如栈的时候,我们如果只进行,浅拷贝的话,会导致两个对象指向一块空间,会导致野指针,同一块空间被释放两次。并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。
原创
发布博客 2024.03.15 ·
928 阅读 ·
20 点赞 ·
3 评论 ·
28 收藏

c++类和对象(上)

比如:对于电脑这样一个复杂的设备,提供给用户的就只有开关机键、通过键盘输入,显示器,USB插孔等,让用户和计算机进行交互,完成日常事务。缺陷:每个对象中成员变量是不同的,但是调用同一份函数,如果按照此种方式存储,当一 个类创建多个对象时,每个对象中都会保存一份代码,相同代码保存多次,浪费空间。对于计算机使用者而言,不用关心内部核心部件,比如主板上线路是如何布局的,CPU内部是如何设计的等,用户只需要知道,怎么开机、怎么通过键盘和鼠标与计算机进行交互即可。,类的所有成员都在类的作用域中。
原创
发布博客 2024.03.04 ·
630 阅读 ·
21 点赞 ·
5 评论 ·
11 收藏

【c++】 入门

需要使用到namespace关键字,
原创
发布博客 2024.01.28 ·
810 阅读 ·
18 点赞 ·
4 评论 ·
32 收藏

二叉树链式结构的实现

简单构建一颗二叉树在学习二叉树的基本操作前,,然后才能学习其相关的基本操作。由于现在我们对二叉树结构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。注意:上述代码并不是创建二叉树的方式,真正创建二叉树方式后序详解重点讲解。
原创
发布博客 2024.01.27 ·
783 阅读 ·
24 点赞 ·
1 评论 ·
10 收藏

TopK问题

TopK
原创
发布博客 2024.01.24 ·
492 阅读 ·
17 点赞 ·
6 评论 ·
10 收藏

二叉树的顺序结构,堆的实现

下面我们给出一个数组,这个数组逻辑上可以看做一颗完全二叉树,但是还不是一个堆,现在我们通过算法,把它构建成一个堆。这里我们从倒数的第一个非叶子节点的 子树开始调整,一直调整到根节点的树,就可以调整成堆。在堆里删除一个Pop掉一个数是将根节点Pop掉,我们在这里如果直接Pop掉的话,会打乱整个堆的结构,所以我们将根节点与最后一个节点交换,交换后再Pop掉,然后我们再通过根节点开始的向下调整算法把他调整成为一个小堆。i = 0,1, 2…将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。
原创
发布博客 2024.01.23 ·
1592 阅读 ·
57 点赞 ·
3 评论 ·
33 收藏

树的概念即结构

通常的方法是 链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所 在的链结点的存储地址。对于深度为K 的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对 应时称之为完全二叉树。4. 若规定根节点的层数为1,具有n个结点的满二叉树的深度,h=log2(n+1) . (ps: log2(n+1)是log以2 为底,n+1为对数)2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是 2^h-1.如上图:A是B的父节点。
原创
发布博客 2024.01.18 ·
808 阅读 ·
24 点赞 ·
3 评论 ·
24 收藏

c语言队列的实现

队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。队列:只允许在一端进行插入数据操作,在另一段进行删除数据操作的特殊线性表,入队列:进行插入操作的一段称为队尾。出队列:进行删除操作的一段称为队头。队列具有先进先出的特性。
原创
发布博客 2024.01.18 ·
393 阅读 ·
10 点赞 ·
2 评论 ·
10 收藏

c语言实现栈

初始化栈的时候top初始化可以为0,但容易出现歧义,所以我们可以将top初始化为-1,只需要将push内的top换一下位置就行。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构更优一些。栈分为定长的静态栈和支持动态增长的栈,静态栈一般不实用,所以我们主要实现下面的支持动态增长的栈。栈一种特殊的线性表,其允许在固定的一端进行插入和删除的元素操作。压栈:栈的插入操作叫做进栈/压栈/入栈。入数据在栈顶:Pop。我们实现的栈是数据结构中的一种结构,和操作系统中的栈无关。栈中的数据元素遵循后进先出的原则。
原创
发布博客 2024.01.18 ·
390 阅读 ·
13 点赞 ·
1 评论 ·
10 收藏

链表带环问题及其扩展问题

当慢指针刚 进环时,可能就和快指针相遇了,最差情况下两个指针之间的距离刚好就是环的长度。此时,两个指针每移动一次,之间的距离就缩小一步,,因此:在满指针走到一圈之前,快指针肯定是可以追上慢指针的,即相遇。: 让一个指针从链表起始位置开始遍历链表,同时让一个指针从判环时相遇点的位置开始绕环 运行,两个指针都是每次均走一步,最终肯定会在入口点的位置相遇。,即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置同时开始运行,如果链表带环则一定会在链表中相遇,否则快指针率先走到链表末尾。
原创
发布博客 2024.01.17 ·
401 阅读 ·
13 点赞 ·
0 评论 ·
8 收藏
加载更多