- 博客(57)
- 收藏
- 关注
原创 vector的模拟实现
之前给大家介绍了我们的vector的使用,相信大家都收获良多,那么为了更好的掌握我们的vector,我们还是需要对其底层进行部分的进行相关的刨析,理解,那么话不多说,我们直接开始我们今天的学习。
2023-10-06 20:24:10
885
2
原创 vector的介绍以及使用方式
即我们的string之后,今天小编给大家要介绍一个我们stl中另外一个常用的容器vector,和我们的string一样我们的vector底层的存储结构是我们的顺序表,但是与之不同的我们的string只是支持我们字符串类型的存储,而我们的vector作为一个通用的容器该是支持各个类型的,而这个也就是需要靠我们之前学习的模板实现,那么接下来我们就开始展开对我们的vector的学习吧。(注意:这里小编只介绍我们常用的接口)1. vector是表示可变大小数组的序列容器。
2023-10-06 10:13:54
2712
1
原创 string类的模拟实现(万字讲解超详细)
这里我们就开始介绍我们string的模拟实现了,我相信在经过之前给大家介绍的标准库string类的使用后,大家对我们的string类都已经有一定的认识,心里对该底层实现也有了一定的猜想,那么现在我们就为大家打消疑虑,给大家揭开我们string神秘的面纱(注意:小编这里只给大家是实现了一部分我们经常使用的函数)。
2023-10-05 18:05:12
1260
2
原创 string类的使用方式的介绍
大家好呀,失踪两个月的博主回来了,不要问博主去干什么了?问就是去修炼内功心法去了,时至今日按照我们之前的更新进度,我们应该进入到我们stl的相关内容的学习。那么我们今天就从string开始逐渐给大家介绍我们的stl的内容,但是在介绍之前,我们先笼统的了解一下我们stl的内容。STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。
2023-10-02 21:13:21
1240
原创 Linux基础开发工具之Linux自动项目构建工具的使用
总体来讲我们的make小编已经给大家讲解的大差不差了,但是这里还有几个符号需要大家去使用理解一下:$@:表示的是我们依赖关系左边的简写$^:表示的是我们依赖关系右边的简写@:如果我们不想让我们使用make时我们的依赖方法显示到屏幕上,只需要我们在我们的依赖方法的第一行加上@即可#:mikefile中的注释对于内容呢,小编就给大家介绍到这里了关键是需要大家平时多使用加深影响并且学习,才能掌握我们的LInux操作系统的相关内容。
2023-08-09 00:37:13
579
4
原创 Linux基础开发工具之Linux编译器的使用(gcc/g++)
大家好呀,许久没给大家更新了,对于我们在Linux环境下编程,之前小编只是给大家介绍了有关编辑器vim的相关操作,但是对于我们编辑后关键是生成对应的可执行程序,那么产生可执行程序就一定需要使用我们相关的编译器,那么今天给大家带来的就是我们Linux环境下编译器的使用。
2023-07-25 15:05:05
1006
1
原创 Linux开发工具之vim工具的使用介绍
vim相当于是我们的一个编辑器,也相当于一个文本使用,但是我们要运行一个程序这远远是不够的,所以后续小编就会给大家带来我们的编译器的使用方式,大家敬请期待。
2023-07-09 16:03:41
1261
7
原创 Linux基础开发工具之软件包管理器
Linux作为一款操作系统,其自然也和我们其他的操作系统一样需要安装对应得软件去满足我们的需求,因此为了更好的下载软件我们也就需要使用相应的软件包管理器。
2023-05-28 14:06:41
1551
原创 Linux权限相关介绍
权限指的就是我们对于某件事物所能够相关操作,而对于不同对象该所能进行的操作是不同的,所以我们可以认为,权限是与对象和事物属性相关的,而我们就是通过这两点给大家充分的介绍一下Linux相关权限的介绍。
2023-05-25 21:55:34
1003
原创 Linux基本指令介绍
之前给大家介绍了LInux操作系统的历史以及教大家自己配置了一个属于自己的操作系统,那么我们今天就给大家介绍一些基本指令,教会大家如何去基础的这款操作系统。
2023-05-24 20:03:44
1887
原创 C++之模板初阶
class 类模板名// 类内成员定义这里给大家举一个类模板,让大家好理解一下。// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public :, _size(0){}// 使用析构函数演示:在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表。
2023-05-21 21:13:23
540
原创 C++内存管理
之前在C语言的介绍中,小编给大家介绍了有关于C语言动态内存管理内存管理,那么在我们的C++中该又有着什么不同呢?下面小编会给大家细细讲解。int main()//一个对象free(p1);delete p2;//一组对象free(p4);return 0;这里我们运行一下:这里可以发现我们这里系统调用了构造函数和我们的析构函数,这是什么原因呢?
2023-05-21 16:42:30
616
原创 Linux环境搭建与历史
今天小编就开始给大家带来Linux操作系统的相关知识了,操作系统在我们的计算机学习的过程中是非常重要的一门课,希望大家和小编一起努力,掌握好操作系统的相关知识。
2023-05-17 15:01:03
237
1
原创 C++之类和对象(二)
之前给大家介绍了类和对象的一些基础知识,那么今天我们学习的就是C++中类与对象比较核心的内容,而今天给大家带来的主题就是类的6个默认成员函数。
2023-05-07 21:45:12
507
1
原创 类和对象(一)
对于类的定义我们即可以将成员函数的声明和定义放在类内,也可以将类的定义放在类外,但是两者在本质上却有着一丝不同这里就需要我们仔细去了解一下:1. 当声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。也就是:这里也就会造成小编和大家说的可执行程序变大,那么我们怎么去避免这种情况的出现呢?这里就有我们第二种定义方式:2. 类声明放在.h文件中,成员函数定义放在.cp在声明和定义分开的情况下就需要我们在定义时去指定类域,对于类域的内容我们继续往下看。
2023-05-05 11:41:36
766
原创 C++入门(内容补充)
之前给大家更新了一系列关于C++的基础语法,那么今天小编再给大家进行部分内容的补充,然后我们马上就会进入类有关内容的介绍。
2023-05-04 22:29:59
652
原创 C++入门——内联函数的介绍
今天小编给大家带来的是内联函数的介绍,大家可能之前没有听过内联函数这个名词,那么今天就和小编一起认识一下这个朋友吧。
2023-05-03 22:20:43
737
原创 C++初阶之函数重载
今天小编给大家带来的是C++中关于函数重载的内容,和C语言不一样,函数重载是C语言特有的,那么该功能实现的底层原理是什么呢?请大家和我细细往后看。
2023-04-22 11:27:24
542
原创 C++初阶之命名空间的使用
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。那么我们日常发生的命名冲突有以下两种1.跟库冲突2.互相之间的冲突(多人做一个项目的命名冲突)这里小编简单给大家举个例子说明一下:这里我们简单的写一段代码,对于这里我们在全局变量中命名一个rand的变量,但是在我们运行的时候就会出现一下结果。
2023-04-19 09:47:41
546
原创 排序(4)——归并排序
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
2023-04-16 21:15:51
602
1
原创 排序(3)之交换排序
今天小编给大家带来交换排序的内容,对于交换排序中的快速排序在理解上会相对困难一点,小编这里会配合图片给大家细细讲解。那么现在就开始我们今天的主题。1.时间复杂度:O(N^2)2. 空间复杂度:O(1)3. 稳定性:稳定。
2023-04-13 15:18:01
1133
1
原创 排序(1)之插入排序
从今天小编就开始给大家介绍排序的内容,对于排序内容我们一共分,插入,选择,交换,归并这几个大类,那么今天小编给大家带来的就是插入排序1. 元素集合越接近有序,直接插入排序算法的时间效率越高说明:这也是我们直接插入的排序的优势,但是如果数据是顺序存储的,也需要我们遍历一遍后才知道相应结果,所以这里我们最好的情况下时间复杂度也是O(N)。2. 时间复杂度:O(N^2)
2023-04-10 17:19:20
534
原创 数据结构之堆的介绍
今天小编给大家带来的是数据结构中有关与堆的介绍,但由于堆的结构实际上是一棵完全二叉树,所以在介绍堆前小编需要给大家先讲解一下树以及二叉树的基本概念,以便大家后续理解。
2023-04-01 00:10:44
527
原创 leetcode(622)之设计循环队列
之前给大家介绍了队列这种数据结构,但今天我给大家带来的是一种特殊的队列——循环队列,大家可以对比一下两者的不同,以及我们在实现数据结构中的灵活性。
2023-03-27 20:59:24
372
1
原创 数据结构之栈的实现
今天给大家介绍一种特殊的数据结构——栈,栈和我们之前介绍的链表和顺序表一样都是线性结构,那栈为什么特殊呢?接下来请大家和小编一起细细了解。
2023-03-25 13:37:07
563
原创 链表oj题讲解(2)之链表中间节点
这里我们的p指针从1开始按我们标序的顺序进行移动,然后到空指针就是我们循环结束条件,我们这里还需要给一个计数器size来记录链表的长度,然后我们再进行一次循环,然后让指针移动size/2次,让指针返回size/2+1位置的节点内容。思路三我们这里需要采用快慢指针的方式,让一个fast指针一次走两个节点位置,一个slow指针每次走一个节点位置,当fast指针走到末尾时(奇数个和偶数个的节点的结束条件不一致)。slow刚好在链表的中间节点处。这里时偶数个节点的执行最后结果,循环结束条件是fast==NULL.
2023-03-21 21:41:38
264
原创 链表oj题讲解(1)——移除链表元素
在初步给大家介绍链表之后,为了让大家更好的理解和巩固链表,小编这里会从易到难以此给大家带来一系列关于链表的oj题。那么接下来就让我们看看今天的例题。
2023-03-18 21:23:56
225
原创 数据结构之顺序表详解
今天给大家带来的是数据结构的顺序表结构,以及与其的有关功能的实现,在数据结构的这部分内容,可能有些知识点有点难以理解,这里小编会配合图画,让大家能够更好的理解,那么下面就让我们直接步入正题吧。
2023-03-11 15:49:54
291
原创 数据结构之空间复杂度详解
在上一篇文章我们了解了时间复杂度,今天我们就从空间的角度来分析一个算法。assert(a);end > 0;++i)break;根据空间复杂度的判断条件,我们要关注的是额外的创建的空间,那么这里为实现该代码逻辑的运行额外创建的变量有end, i,以及exchange,很明显这里是一个常数的量级,那么这里的空间复杂度是O(1)。
2023-03-08 09:13:46
654
原创 数据结构之时间复杂度
今天开始,小编就开始给大家带来数据结构的内容了,在学习数据结构的过程中可能有些知识有一点晦涩难懂,需要大家多花点时间去理解,小编也会不断尽自己的努力,不断提高文章质量,让大家更容易攻克难题,那么今天就让我们一起去了解一下时间复杂度的内容吧。
2023-03-04 15:55:37
253
1
原创 操作符详解
C语言的操作符是C语言的一个重要部分,也是我们以后在编写程序需要经常需要使用的领域,所以了解每一种操作符的使用方法和作用是非常重要的。
2023-03-03 13:41:08
121
原创 枚举类型和联合体类型详解
继结构体后今天给大家带来两种新的自定义类型——枚举和联合enum Day//星期Mon,Tues,Wed,Thur,Fri,Sat,Sunenum Sex//性别MALE,FEMALE,SECRETenum Color//颜色RED,GREEN,BLUE以上三个表示的都是枚举类型,而{}内容表示的是枚举类型可能的取值,也叫做枚举常量,对于该枚举常量的值,一般是默认从0开始,一次递增1,当然在定义的时候也可以赋初值。对于赋值后该内部的值的分布是,
2023-02-28 20:05:50
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人