- 博客(29)
- 收藏
- 关注
原创 Stack 和Queue
queue是一种容器适配器,专门用于先进先出的环境中,其从容器一端插入数据另一端提取数据容器适配器是对于特定类封装作为其底层的容器,同时queue提供一组特定的成员函数来访问其元素底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类默认情况下,没有为stack指定底层容器,默认情况下使用deque。
2023-04-13 17:56:36
100
1
原创 模板的初步理解
函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。所以其实模板就是将本来应该我们做的重复的事情交给了编译器。
2023-03-22 15:12:32
102
1
原创 C++ 内存管理
new的原理调用operator new申请空间在申请的空间上执行构造函数,完成对象的构造delete的原理在空间上执行析构函数,完成资源清理调用operator delete释放空间new X[N]的原理调用operator new[ ]函数,完成对N歌个对象空间的申请在申请的空间上执行N次构造函数delete[ ]的原理在释放的对象空间上执行N次析构函数,完成N个对象的资源清理调用operator delete[ ]释放空间。
2023-03-15 19:38:02
205
6
原创 类的近两步了解
C++为了增强代码的可读性引入了运算符重载,,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。
2023-03-08 21:15:38
120
1
原创 进一步了解类和对象
类的六个默认成员函数:析构函数概念特性 析构函数概念特性拷贝构造函数概念特征如果一个类中什么成员都没有,简称为空类。在空类的时候,编译器会自动生成6个默认成员函数。本篇我们简要介绍一下构造函数、析构函数和拷贝构造。在之后的文章中深入了解类的其他内容。
2023-03-03 20:48:54
106
1
原创 类与对象的初步理解
C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。比如:之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C++方式实现,会发现struct中也可以定义函数。但是结构体的定义,在C++中更喜欢用class来代替。
2023-03-01 21:49:40
93
1
原创 Linux: shell命令原理 权限管理 粘滞位
目录可执行权限表示的是你是否可以在目录下执行命令如果没有 -x权限,则无法对目录执行任何命令,甚至无法cd进入,即使有 -r权限。如果有 -x权限,而没有-r权限。则可以执行命令,可以cd进目录。但不能读出目录下的文档。
2023-01-11 18:07:37
322
原创 常见排序的实现及对比
排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。
2022-12-23 18:10:26
619
原创 C语言实现二叉树及相关知识
1. 顺序存储顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,因为不是完全二叉树会有空间的浪费。而现实中使用中只有堆才会使用数组来存储,关于堆我们后面的章节会专门讲解。二叉树顺序存储在物理上是一个数组,在逻辑上是一颗二叉树。2. 链式存储二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。
2022-12-14 18:26:25
168
原创 栈和队列的实现
只允许在一短插入数据,另一端删除数据的特殊线性表,遵循先进先出的规律FIFO,插入这端称为队尾,删除这端称为对头。栈:一种特殊的线性表,只允许固定的一端进行插入和删除元素操作,进行数据更改的一端叫。栈的实现一般使用数组,因为数组在尾上插入数据的代价比较小。一般用链表实现,因为使用数组在头上出数据效率会低。用我的话来讲,栈的使用方式非常类似于“压子弹”。遵守后进先出原则LIFO。
2022-11-15 15:42:22
273
原创 程序环境和预处理
/例如:注意:1.所以用于对数值表达式进行求值的宏定义都应该用这种方式加上括号,避免在使用宏时由于参数中 的操作符或邻近操作符之间不可预料的相互作用。2.宏参数和#define 定义中可以出现其他#define定义的符号。但是对于宏,不能出现递归。3. 当预处理器搜索#define定义的符号的时候,字符串常量的内容并不被搜索。
2022-10-17 15:52:42
185
1
原创 C语言 文件操作
如果把输入的数据存放在文件当中,我们需要修改时只需要应用文件操作即可。FILE中包含了文件的所有信息,当我们要对文件进行操作时可以创建一个 FILE* 类型的指针变量。例如FILE* p。每个被使用的文件都在内存中开辟了一个相应的文件信息区,这些信息保存在一个结构体变量中——经过学习我们发现对文件操作每一次都要打开,但为什么我们没有对屏幕、键盘进行类似的操作呢?2.程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)stream 是流的意思,这里可以理解为我们的文件指针。
2022-10-09 16:38:58
196
原创 动态通讯录
实现”动态通讯录"这个功能相对来说有点复杂,所以将程序分为 test.c、test.h、Contact.c 两个源文件一个头文件。接下来我们来实现没有人数上限且基本不浪费多余空间的通讯录。
2022-09-24 13:28:21
840
1
原创 大小端储存,signed char的范围
当有一个数值超过一个字节,储存到内存当中就有顺序的问题存在。为什么 unsigned char c=-1 打印出来等于225
2022-09-04 13:12:48
1016
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅