![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和STL标准库的模拟实现
文章平均质量分 64
对于C++各种数据结构的模拟实现
我要满血复活
厦门大学计算机科学与技术学生,简单记录学习路程
展开
-
单链表创建以及应用
创建链表。原创 2023-12-17 16:43:00 · 377 阅读 · 1 评论 -
双向带头循坏链表的创建
综上可以只需要创建LTInsert和LTErase函数就可以快速创建一个链表。因为为循坏链表,所以需要从头结点的下一个结点开始,到头结点结束。结构体如下,其中储存两个指针,存前一个以及后一个结点的地址。双向带头循坏链表的结构。原创 2023-12-24 20:42:21 · 331 阅读 · 0 评论 -
string的模拟实现
1.string类对象的成员变量2. string类对象的常见构造(constructor)函数名称 功能说明 string() (重点) 构造空的string类对象,即空字符串 string(const char* s) (重点) 用C-string来构造string类对象 string(size_t n, char c) string类对象中包含n个字符c string(const string&s) (重点) 拷贝构造函原创 2024-05-16 20:14:19 · 409 阅读 · 0 评论 -
vector的模拟实现
1. vector是表示可变大小数组的序列容器。2.就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3.本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。原创 2024-05-25 20:34:52 · 301 阅读 · 0 评论 -
list的模拟实现
1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list与非常相似:最主要的不同在于是单链表,只能朝前迭代,已让其更简单高效。4.与其他的序列式容器相比(arrayvectordeque)list通常在任意位置进行插入、移除元素的执行效率更好。5.与其他序列式容器相比,list和。原创 2024-05-30 21:16:43 · 264 阅读 · 0 评论 -
stack的模拟实现
虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为。原创 2024-06-03 09:14:18 · 765 阅读 · 0 评论 -
queue的模拟实现
底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。中操作,其中从容器一端插入元素,另一端提取元素。实例化指定容器类,则使用标准容器deque。默认情况下,如果没有为。队列是一种容器适配器,专门用于在。:返回队列中有效元素的个数。:返回队头元素的引用。:返回队尾元素的引用。原创 2024-06-03 09:18:29 · 184 阅读 · 0 评论 -
priority_queue的模拟实现
底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素。提供一组特定的成员函数来访问其元素。中放自定义类型的数据,用户需要在自定义类型中提供。弹出,其称为优先队列的顶部。:返回容器中第一个元素的引用。:返回容器中有效元素个数。:在容器尾部插入元素。原创 2024-06-03 19:49:14 · 251 阅读 · 0 评论 -
C++二叉搜索树
或者是具有以下性质的二叉树。原创 2024-07-20 17:49:41 · 269 阅读 · 0 评论