- 博客(26)
- 收藏
- 关注
原创 STL--set
set 集合是一种关联容器,用于存储唯一的元素,并且这些元素会按照特定的顺序自动排序,默认是升序排列。这就好比一个智能书架,每本书都是独一无二的,并且书架会自动按照书名的字母顺序排列书籍,方便查找。例如,存储整数的set中不会有重复的整数,插入元素时,set会自动调整元素位置以保证排序。set<类型名> 变量名;set<int> i;
2025-09-26 17:50:35
767
原创 二叉搜索树
先描述在实现// 定义key结构的二叉搜索树// 类模版K _key;//结点的值存储//指向左孩子的结构体指针//指向右孩子的结构体指针//初始化列表---空树:_key(key)
2025-05-01 19:39:58
1201
原创 Stack--Queue 栈和队列
1、队列是一种容器适配器,专门设计用于在 FIFO 上下文(先进先出)中运行,其中 elements入到容器的一端并从另一端提取。2、队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供 一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。1. 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。2. 此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶 部的元素)。
2025-04-30 23:13:08
1090
原创 List--链表
与之前的vector不一样,List的存储是随机存储,不是一段的连续的空间,既然不是一段连续的空间,那就不能使用下标进行访问。在C++中可以直接使用list容器:列表是序列容器,允许对序列中任意位置的恒定时间插入和擦除作,以及双向迭代。
2025-04-28 12:24:31
1560
原创 vector
我们在学习C语言时,我们可以直接定义并初始化一个数组或动态开辟出一段空间来存储数据,那我们所定义或创建的空间是什么呢?一段连续的空间且可以使用下标引用的地址空间是什么呢?它就是vector:这里的allocator是一个矢量容器,我们以后再详细解读在C中,创建一个二维数组或者多维数组时,我们需要定义二维指针并需要动态开辟空间,该怎样解决这一麻烦问题呢?C++的出现解决这一问题了。在C++中,我们不需要自己动态开辟空间来存储数据,有类与类模板的支持给我们这个容器来存储空间连续的数据。
2025-04-27 21:43:14
1017
原创 函数模版与string
函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生 函数的特定类型版本。STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的 组件库,而且是一个包罗数据结构与算法的软件框架。
2024-12-17 20:59:23
726
原创 C++初阶
• 定义命名空间,需要使⽤到namespace关键字,后面跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。• namespace本质是定义出⼀个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不在冲突了。• C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。
2024-11-27 17:37:49
710
原创 数据结构之二叉树
树是⼀种非线性的数据结构,它是由 n(n>=0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,而叶朝下的。• 有⼀个特殊的结点,称为根结点,根结点没有前驱结点。• 除根结点外,其余结点被分成 M(M>0) 个互不相交的集合 T1、T2、……、Tm ,其中每⼀个集合 Ti(1 又是⼀棵结构与树类似的子树。每棵子树的根结点有且只有⼀个前驱,可以 有 0 个或多个后继。因此,树是递归定义的。注意:1. 子树之间不能相交(相交的树称之为图)
2024-11-07 23:36:01
693
1
原创 数据结构续集
带头链表里的头结点,实际为“哨兵位”,哨兵位结点不存储任何有效元素,只是站在这里“放哨 的”,头结点可以是任意的值。由图我们可知道,带头:由头结点即哨兵位;双向:前一个结点可以指向后一个结点,后一个结点可以找到前一个结点;循环:形成一个闭合的环,头结点指向尾节点,尾节点指向头结点。//所需要保存的值//指向前一个结点的指针//指向后一个结点的指针我们定义后再typedef,重新定义一个结构体名字,我们使用该结构体时就不用再加struct了。
2024-11-02 14:07:58
667
原创 通讯录系统
这里需要我们看清楚我们要输入的类型,就像输入电话的时候需要&,是因为scanf本身的性质,而其他数据的输入不需要&,是因为他们本身是数组,数组名就是首元素地址,也是数组的地址。所以要查找通讯录中是否有该联系人,我们可以通过联系人的姓名 年龄 性别 电话 地址等信息来查找联系人,这里我们用的是姓名查找。当我们要实现顺序表时,从哪方面开始很关键,顺序表:要能够自由的对表中的数据进行增删查改等操作。通讯录系统是由线性表--顺序表的基础上实现的,所以,在实现通讯录系统前,我们需要一个顺序表。
2024-10-05 17:05:21
335
原创 动态内存管理
我们在定义变量时,可以:,但是在上述内存开辟时,开辟的空间都是一定的。• 空间开辟大小是固定的。• 数组在申明的时候,必须指定数组的长度,数组空间⼀旦确定了大小不能调整。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小 在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。所以我们该怎样动态分配内存呢?
2024-09-19 20:23:23
357
原创 数据在内存中的存储
大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。
2024-09-14 19:04:56
783
原创 数据结构(顺序表)
算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度, 而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主 要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间 复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。
2024-09-01 15:16:17
503
1
原创 C语言的开始续接(3)
前⾯学习的数组被称为⼀维数组,数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元 素,这时候就是⼆维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称 为多维数组。根据自己所需要的形式,进行函数的声明与定义。
2024-08-15 21:14:42
964
原创 C语言的开始续接(1)
C语言提供了丰富的数据类型来描述生活中的各种数据。使用整型类型来描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。C语言原来并没有为布尔值单独设置⼀个类型,而是使用整数 0 表示假,非零值表示真。在 C99 中也引⼊了 布尔类型 ,是专门表示真假的。布尔类型的使用得包含头文件 布尔类型变量的取值是:true或者false.
2024-08-10 19:39:00
897
原创 遍历的过程
在编程中,遍历常用于处理数据结构或迭代访问某个范围的元素。通过遍历,我们可以逐个访问集合中的元素,进行读取、修改、打印等操作。前 都是从A出发,在每个字母左边画点相连,就是遍历的顺序A-B-D-E-C-F-H-G。也是从A出发,在每个字母的下边点一个点然后相连(蓝色线)D-B-E-A-F-H-C-G。遍历是指按照一定的顺序逐个访问集合中的元素或执行某个操作的过程。从A出发,在每个字母的右边画点(红色线)D-E-B-H-F-G-C-A。C语言中的遍历通常是使用循环来完成的(for while 等)。
2024-05-28 21:06:00
274
原创 C语言的开始
1.C语言是什么?C语言是人和机器交流的语言。⽬前已知已经有上千种计算机语⾔,⼈们是通过计算机语⾔写的程序,给计算机下达指令,让计算机工作的。C语⾔就是众多计算机语⾔中的⼀种,当然C++/Java/Go/Python都是计算机语⾔。2.C语言的历史C 语言最初是作为 Unix 系统的开发⼯具而发明的。C语言是⼀门编译型计算机语⾔,C语⾔源代码都是⽂本⽂件,⽂本⽂件本身无法执⾏,必须通过编译 器翻译和链接器的链接,⽣成⼆进制的可执⾏⽂件,可执⾏⽂件才能执⾏。
2024-05-26 18:06:28
927
原创 字符函数(另)
3为指明要读入的文件,如果读入从键盘输入的数据时,可以用stdin(标准输入)代替,作为参数。在读取时保留输入中的换行符。:函数的使用需要两个参数,fputs(1,2),参数1变量名称,参数2为标准输入stdin即可;用于显示字符串等,与fgets()函数类似,但显示时不会在输出的末尾添加换行符。:读取整行输入,直至遇到换行符,把换行符丢弃,存储其余字符,但会在字符末尾加上一个空字符使其成为一个字符串。fgets()保留输入中的换行符,fputs()不在输出时添加换行符。
2024-05-13 23:40:31
226
原创 基本运算符
像c=3*1+5*1,优先级并没有规定先进行哪一个乘法,C会根据不同的硬件来决定计算先前先后。虽然最后都为8,但运算符的优先级为(),* /,+ - ,=。有小括号()的先计算()括号里面的,再进行括号外部。后 加减乘除根据数学规律,先乘除后加减。
2024-04-17 16:27:14
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅