- 博客(25)
- 收藏
- 关注
原创 C++的内存管理和模板
假如我们需要编写一个函数来比较两个值,并且指出实际的关系,在实际中,我们可能想要定义多个函数,通过函数重载来比较每一种类型。return 0;return 0;int b = 10;return 0;当我们要比较浮点数在重载一个浮点数类型的比较,这样做太麻烦且逻辑一样,代码冗余。
2023-09-27 22:55:45
939
94
原创 Linux常用工具
在Linux下我们有一些非常好用的工具,他们可以显著的提升我们的效率,这篇将介绍这些工具,来帮助我们完成Linux编程操作。
2023-09-19 06:00:00
1096
42
原创 Linux常见指令和基础知识
从这一章开始我们就要正式的进入我们的Linux的学习了,在正式学习之前我们要先熟悉一下Linux的操作和一些基础知识吧。
2023-09-18 13:48:13
646
24
原创 C++基础-类和对象(下)
对于任何C++的类来说,构造函数都是其中重要的组成部分,我们已经在上篇介绍了类的一些基础知识,这篇我们将继续了解类的一些其他功能。并对之前讲解过的内容(如构造函数)进行一些更加深入的讨论。在类的外部定义静态成员时,不能重复static关键字,该关键字只能出现在类内部的声明语句中。一般来说,我们不能在类的内部初始化静态成员。相反的,必须在类的外部定义和初始化每个静态成员。和其他对象一样,一个静态数据成员只能定义一次。
2023-09-18 06:00:00
752
15
原创 算法之排序
之前我们学习了二分查找,今天来让我们看看在线OJ上的题目吧,二分都有什么样的用法吧。我们使用二分不仅可以在有序数组中,只要符合我们一次可以去掉一般元素,符合我们二分思想就可以用我们的二分查找。我们查找波峰和波谷也可以通过二分来进行完成。
2023-09-16 22:14:41
330
21
原创 C++基础-类和对象(上)
在C++语言中,我们使用类定义自己的的数据类型。通过定义新的类型来反映待解决问题中的各种概念,使得我们可以更容易编写,调试和修改程序。今天我们就初步的认识类,并学习一些类的相关知识。面向对象程序设计的核心思想是数据的抽象,继承和动态绑定。通过使用数据抽象我们可以将类的接口与实现分离;使用继承,我们可以定义相似的类型并对相似关系进行建模;使用动态绑定,我们可以在一定程度上忽略相似类型的区别,而以统一的方式使用他们的对象。我们前面不会涉及类的继承和动态绑定,这些会在我们有一定基础之后慢慢进行解锁。
2023-09-16 20:16:48
331
45
原创 C++基础入门
C++是在C的基础之上,容纳进去了面向对象编程思想,并且增加了许多有用的库。熟悉C语言对C++学习有很大的帮助,C++是对C语言的补充和对C语言进行优化。本章我们学习一点C++的基础内容,先浅浅的了解一下C++。因为变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。对比上面的代码我们可以看出使用了未加using namespace std在实现代码中多了一些东西。
2023-09-10 18:27:23
4152
56
原创 数据结构:排序解析
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序在我们生活中非常常见,比如买东西看的销量,价格的对比等。排序也分为内部排序和外部排序。内部排序是数据元素全部放在内存中的排序,外部排序则是数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。下面让我们正式认识排序吧。
2023-09-01 22:34:55
2495
95
原创 数据结构:二叉树及相关操作
在实现二叉树前,我们要先对树产生一些基本的认识,才可以去实现它。树的用途非常广泛,向文件系统的目录树结构等。树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。有一个特殊的结点,称为根结点,根节点没有前驱结点。除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。因此,树是递归定义的。
2023-08-24 17:34:51
4365
95
原创 带你玩转双链表
相信经过前面的学习,大家已经了解的单链表的缺陷和用途,今天我们学习双链表,和以前不同,今天双链表的实现我们增加一点点的难度,但我相信这些难度对大家都没有问题。和之前单链表的实现,我们的数据类型是固定的,主函数中传什么我们的单链表结构体中就需要相应的数据类型,今天双链表的实现我们将改为主函数(用户)传任何的数据类型我们都可以接收并且实现。本章涉及函数指针,回调函数,柔性数组的知识点,忘记的小伙伴们可以在本章复习一下哟。相信大家对我们双链表已经有了很深的了解,这个带头循环链表将是我们使用最多的结构。
2023-08-10 18:47:12
916
65
原创 手搓单链表
链表和顺序表都是线性表,都是数据结构中重要的部分,今天来看的单链表是很多高级结构的子部分,所以学好单链表有助于我们后期的提升。有一个或多个存放数据的结构体成员,还有一个指向下一个节点的指针。用来存储我们使用的数据。用来存储下一个节点的地址。
2023-08-09 14:48:45
389
55
原创 快速上手字符串函数
在C语言中,我们对字符串的操作大部分都是通过字符串函数来进行的,下面就让我们来深入的了解一下关于字符串操作的函数。相信你对字符串相关函数已经有了深刻的了解,在实战中多多使用吧。💕。
2023-08-03 15:44:12
628
60
原创 顺序表小项目---通讯录的实现
根据上一节的顺序表,我们来做一个小项目,就是实现一个通讯录,这个通讯录也是实现静态和动态的两个版本,并且还会加入我们所学过的文件操作,使我们的通讯录可以保存在磁盘上,也使我们可以查询以往操作的联系人的数据。话不多说,让我们快快开始吧。我们先实现的静态版本的通讯录,动态是在静态版本上做一点小小的改动,而文件版本又是在动态版本上加上一些内容。相信到这里你对顺序表的理解有进一步的加深,我们的通讯录也可以在加入一些其他的功能,我们做不出来是因为我们周边知识的缺失。
2023-08-01 18:26:09
533
45
原创 详解顺序表功能
动态顺序表只是在判断是否已满的地方多加一个扩容的函数,其他的代码和静态一模一样,思路也一模一样,我们把静态中的数组换为相应的指针,可以通过动态开辟的方式来进行增容。我们的增容是对结构体中的指针进行增容,而非对结构体本身进行增容。大家可以对比一下静态和动态的区别,动态只是在静态的基础上稍稍的进行一下改进,增加一个扩容的函数,其他的一模一样,我们下一个将会用一个小项目来加深我们顺序表印象,这是我们的第一个数据结构,我们还要用它和后面的链表进行对比。学习每个结构的优缺点,是我们在不同问题上选择最优的方案。
2023-08-01 18:24:58
620
26
原创 C语言之预处理那点事
_FILE__ //进行编译的源文件 __LINE__ //文件当前行号 __DATE__ //文件被编译日期 __TIME__ //文件被编译时间这些预定义符号都是语言内置的。return 0;预处理可以改变程序设计环境,提高编程效率。所以学好预处理可以对我们起到锦上添花的作用。
2023-06-10 19:41:22
633
67
原创 详解5个C语言简单易懂小游戏
我们通过5个简单易懂的小游戏来加强我们对C语言的认识,这五个小游戏不仅有单人,还有人机对战和人人对战。让我们在学习之余来上一局紧张刺激的小游戏吧!我们的五个小游戏已经全部做完。下面是做小游戏要注意的点:scanf函数是不安全,我们可以寻找一个安全的函数进行替代,或者解决scanf的安全问题谨防数组越界,我们好几个小游戏都用了数组进行存储,有字符型数组,还有整形数组,要谨防数组越界,注意数组传参。把经常使用的代码构造为函数,减少代码冗余。
2023-06-04 18:51:33
15886
47
原创 C语言之文件操作
在程序设计中,我们一般分两种文件:程序文件和数据文件。包括源程序文件(后缀为.c),目标文件(在windows下为.obj)和可执行程序(在windows下为.exe)。文件内容不一定为程序,是程序运行时读写的数据。文件操作可以让我们实现很多的操作,方便存取等,各种设备也可以看作文件,在Linux中,一切皆文件,我们可以通过文件实现各种功能,所以学好文件可以让我们更近一层楼。
2023-05-28 23:24:54
339
30
原创 数据的储存方式
数据在内存的存储方式可以帮助我们更加深刻的了解数据在内存的分布情况,对我们C语言的学习有着极大的帮助。我们重点了解一下数据的储存。是指数据的低位保存在内存高地址处,而数据的高位保存在低地址处。是指数据的高位保存在内存高地址处,而数据的低位保存在低地址处。数据的存储可以反应内存读的字节数,我们要深刻的了解数据在内存的分布情况。只有对内存了解并熟练掌握才可以让我们找到程序中我们可能在内存中存在的错误。
2023-05-12 12:35:00
135
16
原创 数组和指针
数组是一组相同类型元素的集合。主要包括数组名称,元素类型以及元素个数。类型 数组名称 [ 元素个数 ];//要用常量或常量表达式来指定元素个数 int main() {//表示这个数组中有10个int的数据 int arr2 [ 4 + 6 ];//表示这个数组中有10个int的数据 return 0;int n = 0;//表示这个数组中有n个int的数据 return 0;动态的数组只能在支持C99标准的编译器上编译,且动态数组不可以进行初始化。
2023-04-24 13:14:04
158
15
原创 C语言基础
在学习C语言之前,我们应该思考我们为什么要学习C语言呢?C语言又有什么用呢?如果一味的苦学和研究,很容易让我们陷入“一叶账目不见泰山”的地步,所以在学习C语言之前要知道C语言发展历程和C语言的优势和劣势。C语言在1973年的贝尔实验室诞生,是一门通用的计算机编程语言。C语言远胜于汇编语言的可移植性,有着良好的跨平台的特性。C语言的诞生目的就是为了提供一种能以简易的方式编译、处理低级存储器、而且仅产生少量的机器码以及不需要任何运行环境支持就可以能运行的编程语言。
2023-04-15 16:34:13
251
19
空空如也
谁知道这是什么情况,是缺少插件吗?怎么解决,非常非常感谢了
2023-06-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人