- 博客(63)
- 收藏
- 关注
原创 Linxu小项目:《进度条》的实现
我们在学习C语言阶段就使用过C语言来实现一个三子棋和扫雷游戏的项目,接下来我们就熟悉一下在Linux上用vim写代码。
2024-07-22 15:03:59 211
原创 Linux编译器-gcc/g++使用
我们目前在使用vim编写的都是C语言的代码,那是因为我们只知道用gcc来编译代码,其实我们还可以用g++来对c++的代码进行编译,那么对gcc的每一步,是怎么将C语言编译形成我们的可执行文件我们是否清楚呢?其实我们在学习c语言预处理的部分我们也讲解过,但是目前我们有必要再从头讲解一次!简单来说就是我们的程序和库的结合的过程,再简而言之,就是我们生成的目标文件代码.o文件,甚至说别的.c文件变成.o文件的代码,然后和库文件通过链接器进行链接从而形成的可执行程序。
2024-07-21 16:28:52 568
原创 Linux工具篇:gdb(调试工具)+ makefile(自动化构建工具)
在学习Linux之前,确切的说是在认识和使用vim之前,我们学习C语言甚至是C++都是在VS2022等Windows的IDE上进行编写代码的,我们之前也讲过,VS2022有两个版本,一个是Debug版本,还有一个是Release版本。Debug版本是给我们来进行调试编译的,那么在Linux下也存在我们的调试工具——gdb。makefile则是一个新的概念,它是Linux项目自动化构建工具。1. make会在当前目录下找名字叫“Makefile”或“makefile”的文件。
2024-07-18 13:19:08 549
原创 Linux工具篇:vim(实用的编译器)
如标题所说,我们今天学习的vim可以说是一个使用高效的多模式编译器,我们之前编写C++代码的时所用到的Visual Studio2022算是一个集成开发环境(IDE),而vim与咱们得IDE较为相似,接下来就开始进行对vim的学习。
2024-07-14 23:57:17 744
原创 Linux工具篇:yum
在前面对于linux初步的学习中,学会了部分知识,比如说什么基本指令啦,或者说关于权限的一系列问题和概念引入到了windows的权限,那么对于linux的概念我们仅仅是停留在表面,想要真正的会利用linux甚至说到后期能把linux给完全熟练的使用,我们目前对于linux的工具则需要也很熟练。Linux软件包管理器yum。
2024-07-11 19:52:36 609
原创 攻破Linxu权限+拓展理解windows权限
在前面的学习中,对于Linux环境的搭建相信大家不难掌握,对于常用指令的讲解其实也不难理解,我们是否还记得每次输入ll指令后,除了显示当前文件夹下的除隐藏文件外的所有内容,前面还显示了一些数据?比如:那么这些像乱码一样的东西是什么呢?下面我们就将围绕这个话题进行展开,逐步剖析Linux的权限问题!shell命令以及运行原理Linux严格意义上说的是一个操作系统,我们称之为核心(kernel,但我们一般用户,不能直接使用kernel。而是通过kernel的外壳程序,也就是所谓的。
2024-06-11 12:31:59 797
原创 Linux基础指令
从上文开始我们已经在xshell配置好了属于自己的云服务器系统,但是想要在黑框框里面使用Linux来完成基本互动我们还需要学习和了解一些基础的指令。本文主要介绍了我们在Xshell下会运用到的基本指令,这么多指令记不住也没有关系,并不是所有都要求掌握,日后重要的指令就是经常用的,那么经常用的看多了也就记住了,所以不必担心!!!
2024-05-27 13:43:29 638
原创 Linux入门了解背景知识及环境搭建
据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。
2024-05-23 20:52:07 488
原创 手撕《二叉搜索树》
{}K _key;public:private:本章存在许许多多的细节问题,最直观的例子就是erase的实现,下来可以好好看看,下面我们将正式进入map和set的学习。
2024-05-22 09:29:43 566
原创 C++面向对象————《多态》(全方位攻克)
面向对象的三大特性对最后一特性——《多态》,本次章节我将全方位带领大家攻克《多态》从初识了解的引入,到后面剖析多态在内存中的变化,以及它底层的实现,甚至包含面试题型和常考题都将为大家逐一展开。各位,本章将会是干货拉满的一章,只要你能掌握本章的大部分概念,在面向对象这一块你讲游刃有余,对所谓的类会有深刻的了解以及认识!!多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。举个栗子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;
2024-05-18 01:28:43 848
原创 C++面向对象——《继承》
从本文开始,我们将正式进入C++进阶阶段,该阶段的学习内容会较为抽象,为了能让大家更好的了解消化,我会对每一个重点模块进行画图讲解,虽然不能让图片动起来,但是可以手把手教你各个原理背后的底层逻辑!说回继承,我们在前面的学习中,接触到了关于list的迭代器还有priority_queue(优先级队列)和reverse_iterator(反向迭代器)的“封装”操作。
2024-05-13 17:20:50 797
原创 攻克 && 全方位了解《模版进阶》
我们在前面对于list和reverse_iterator(反向迭代器)的模拟实现中,会发现模版的神奇之处。不难发现我们先是利用了类和对象的封装,再运用了我们学习的模版这个概念,在原来的基础上进行修改和加工,打造出了一个精简高效的模版代码,这就体现出了模版的强大之处。接下来我们将模版进行进阶的展开,手把手攻克每一个有关模版的知识点。一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。【优点】
2024-05-09 13:37:57 903
原创 初始《stack》《queue》及手搓模拟《stack》《queue》
在前面的学习中我们已经初步进入了STL的大门,尤其在list这一章中,我们对于迭代器的实现甚至说对于类和对象的封装有了更深刻的认识,接下来我们将要继续对STL库中的容器进行学习,同时我们也会对以前我们学过的知识进行巩固!1.stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
2024-05-04 17:38:20 724
原创 初识《list》及手搓模拟《list》
现阶段我们已经逐渐熟悉了各个STL库中的容器,对于他们的各个接口都大差不差,在我们学习完vector之后我们就可以陆陆续续接触一些算法题。我们的《好题分析》这一专栏也会不断的进行更新!下面我们先来熟悉以下list这个容器。list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向带头链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。
2024-04-20 00:37:44 885
原创 初识《vector》及模拟实现《vector》
在上一篇blog中,我们认识及学习了string这一标准模版库中的容器,我们了解到string的本质其实为一个字符串,而对于我们今天所学习的vector容器,本质上我们可以理解为一个顺序表,但是这个顺序表里的各个“节点”我们可以存放不只是内置类型的数据,而且还可以存放自定义类型。1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。
2024-04-07 16:11:40 954
原创 初识《string》及手搓模拟实现《string》
在之前的学习中,我们初步了解到了模板的概念,而接下来又对于C++的标准模板库(STL)也有了基本的概念。对于C++的武器,我们不得不进行学习,日后有了这些STL武器的帮助,对于大部分题目我们都能游刃有余。以上就是string的部分内容,在这里我只对于重要的部分进行讲解,string这个库有许多自带的函数,下来可以自己动手尝试尝试实现。
2024-03-31 17:39:12 1072
原创 《模板入门》以及初始STL
在前面的学习中,我们逐渐意识到我们目前学习到的C++知识,可以比传统得C语言更加简洁高效,接下来我们将学习更高效的STL(标准模板库)的各个内容。首先我们需要引入一个全新的该概念————模板STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。
2024-03-24 13:06:04 856
原创 C++内存管理
我们在前面的学习中,学习了解了C++中类与对象的三部分,是我们对于面向对象的编程语言有了更深刻的印象学习。本篇博客往后,我们将正式进入C++工具这一部分,马上我们就将要学习STLclass Apublic:: _a(a)~A()private:int _a;int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间//还会调用构造函数和析构函数free(p1);delete p2;
2024-03-19 13:58:34 651
原创 入门C++《类与对象》——————3
我们在上一篇的blog中进一步了解了《类与对象》的入门知识,下面我们将继续学习《类与对象》剩余知识。现实生活中的实体计算机并不认识,计算机只认识二进制格式的数据。如果想要让计算机认识现实生活中的实体,用户必须通过某种面向对象的语言,对实体进行描述,然后通过编写程序,创建对象后计算机才可以认识。比如想要让计算机认识洗衣机,就需要:1. 用户先要对现实中洗衣机实体进行抽象---即在人为思想层面对洗衣机进行认识,洗衣机有什么属性,有那些功能,即对洗衣机进行抽象认知的一个过程。
2024-03-11 19:13:00 919
原创 《日期类》的模拟实现
我们在前面的两章初步学习认识了《类与对象》的概念,接下来我们将实现一个日期类,是我们的知识储备更加牢固。!" << endl;exit(-1);_day = day;int _month;int _day;
2024-03-10 15:18:34 452
原创 入门C++《类与对象》————2
在上一篇的blog中,我们已经引入了所谓的《类与对象》,并且也介绍了对各个基础知识的概念细节。我们主要需要知道,所谓的默认成员函数是一个大整体,包含:对于构造函数,“我们不写编译器自动生成的”、“无参”、“全缺省”的构造函数都叫默认构造函数。默认生成的析构函数与构造函数类似。内置类型不做处理,对于自定义类型会去调用它们的构造和析构函数。若未显示定义,编译器会生成默认的拷贝构造函数!const对象不可以调用非const成员函数非const对象可以调用const成员函数const成员函数不可以。
2024-03-07 14:41:53 1232
原创 入门C++《类与对象》——1
学完《类与对象》三部曲,我们将会正式两只脚迈进C++的世界,《类与对象》属于是一个第一个全新的模块,与以之前C++入门里的各个知识都不同,不再是C语言的已有知识点的更新,而是一个最重要最关键的C++语法和知识点。对于本章的学习也正是标志着我们将结束“面向过程”从而转向“面向对象”// 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。
2024-02-27 17:29:21 593
原创 C++入门2
从上一章开始我们就正式将要开启C++的大门,本章承接上一章介绍C++入门所需要掌握和学习的知识,方便我们彻底打开C++的大门。C++入门-CSDN博客引用引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。比如我们一提到“花和尚”我们就会自然联想到水浒传里的鲁智深,“花和尚”就是鲁智深的别名,也就是鲁智深的外号。类型引用变量名对象名) =引用实体;int a = 10;//
2024-02-24 23:57:36 854
原创 C++入门
从本次开始将正式打开C++的大门,我们先来介绍下C++。C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。
2024-02-23 22:15:27 665 2
原创 《插入排序》与《选择排序》
目前我们进入到了初阶数据结构的尾声,本章将讲解《直接插入排序》《希尔排序》《选择排序》《快速排序》通过本章我们学习了很多排序,其中对于快速排序还需要我们进行较为深的理解,而希尔排序的时间复杂度的算法目前我们难以理解透彻。下面我们将对《归并排序》和《非递归的快速排序和归并排序》和《计数排序》进行讲解。
2024-02-20 23:38:49 882
原创 《堆》的模拟实现
我们在上一篇的blog中对于《树》有了初步的认识,树的包含多种数据结构,其中我们现阶段最适合引入“堆”的概念,我们同时也在上一篇的blog中的最后引入并介绍了“堆”的相关概念,了解到了小堆以及大堆。初识《树》-CSDN博客本次blog就以小堆为例,动手模拟开辟出一个“小堆”!int size;}HP;是的,本次堆的实现我们利用到了顺序表的存储概念,我们在后面会讲到为什么要使用顺序表。
2023-12-02 18:02:09 924 4
原创 初识《树》
从本文开始,我们将正式进入到《树》的深度学习之中,本文主要介绍关于树的基础概念,并且在文章后面会引出我们即将让展开讲解的一个重要的概念——“堆”。本文主要对树进行了一个引子,主要以介绍为主,接下来的我们将会对堆的知识模块进行延伸。动手实现堆。实现堆排序解决Top-K问题如果你对这些感兴趣或是说遇到了种种困难,那么你一定不要错过后续的内容。记住“坐而言不如起而行”
2023-11-28 16:48:57 1047 2
原创 好题分享(2023.11.12——2023.11.18)
本次《好题分享》当中,我们主要熟悉我们刚刚所学的《栈和队列》这一部分内容。通过三道Leecode题目使我们对于《栈和队列》能有一个更好的认识。以下是我们需要解决的三道题目:《有效括号》《用队列实现栈》《用栈实现队列》这三道题的代码量都会非常的长,那是由于我们现在处于初学阶段,没有办法使用一些高效的方法来解决这些题目,但是不用怕,因为我们不仅仅实现过《栈》也实现过《队列》。对于《栈和队列》的讲解可以去访问我的上一篇blog《栈和队列》的模拟实现(顺序栈) (链队列)-CSDN博客。
2023-11-22 16:07:05 120 1
原创 《栈和队列》的模拟实现(顺序栈) (链队列)
我们在上几篇的blog中,对于顺序表和两种链表都进行了模拟实现,已经相关的Leecode的oj题目我们都已经见识过了,下面我们就来对我们所学习的顺序表和链表进行提高练习,那就不得动手来实现实现《栈和队列》了。以上就是栈和队列的模拟实现。Data structures amd algorithms: 关于数据结构和算法的代码 - Gitee.comData structures amd algorithms: 关于数据结构和算法的代码 - Gitee.com记住“坐而言不如起而行”
2023-11-21 16:28:40 90 1
原创 《循环双向链表》(带哨兵位的头节点)
单链表》的实现(不含哨兵位的单向链表)-CSDN博客今天我们将要对于双向链表的进行模拟实现,由于代码实现起来简单,并且大部分与单链表内容相似,所以我在这里我会进行过多的赘述,我们只是来讲解双向带头链表是什么,剩下的内容将是全部的代码模拟。以上就是我们的双向带头链表的实习,以及对于顺序表和链表之间的区别,学习完后下来可以及时整理整理,在之后我们会对顺序表和链表进行综合运用,我们将在后面实现《栈》《队列》的模拟操作,也会对于相应的题目进行分析。记住“坐而言不如起而行”
2023-11-18 14:09:52 127 2
原创 好题分享(2023.11.5——2023.11.11)
《反转链表》《相交链表》《环形链表(一)》《环形链表(二)》《随机链表的复制》《合并两个有序链表》《移除链表元素》《链表中倒数第K个节点》《链表分割》《链表的回文结构》
2023-11-13 17:08:40 204 3
原创 《单链表》的实现(不含哨兵位的单向链表)
我们在前面的学习中深度的讲解了顺序表的模拟实现,而在上一篇好题分享中,我们又对于链表中的几道基础题(含有含金量)作出了完善的解析,今天我们将要真正的开启链表的学习,就从最基础的模拟实现一个单链表开始好题分析(2023.10.29——2023.11.04)-CSDN博客《动态顺序表》的实现-CSDN博客在这里我仅仅只是讲解了实现单链表的基本概念,而对于后续的一些函数实现,我并没有进行过多的讲解,因为这些函数的实现与之前的尾插和头插大差不差。需要注意的就是释放和插入的next指向,以及先后顺序。
2023-11-10 18:24:28 470 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人