![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容器
^卿^
他日若是凌云志,敢笑黄巢不丈夫
展开
-
自定义 C++ deque
deque双向队列,提供可以头部和尾部进行添加和删除元素的功能。最好的实现方案,就是指针数组,这样可以使用 下标进行元素访问以及添加删除元素。也可以理解list和vector的结合体。#ifndef TDEQUE_H#define TDEQUE_H#include <stdlib.h>#include <string.h>#include <ASSERT.H>using namespace std;template <class T>c原创 2021-04-05 18:18:34 · 221 阅读 · 0 评论 -
自定义 C++atack
stackstack的原则是先进后出,底层实现也是基于list进行实现。#ifndef TSTACK_H#define TSTACK_H#include <stdlib.h>#include <string.h>#include <list>#include <stack>using namespace std;template <class T>class TStack{public: TStack();原创 2021-04-05 18:19:37 · 92 阅读 · 0 评论 -
自定义 C++ queue
queue队列提供先进先出功能,从尾部添加元素,从头部取出元素。其实是基于list的功能进行封装#ifndef TQUEUE_H#define TQUEUE_H#include <stdlib.h>#include <string.h>#include <list>#include <queue>using namespace std;template <class T>class TQueue{public:原创 2021-04-05 18:15:49 · 386 阅读 · 0 评论 -
自定义 C++ map
mapmap底层的数据结构是红黑二叉树,他的优势是可以快速查找对象。key需要提供< 或者 >的操作符运算下面源码的红黑树是复制qt的QMap实现,当然也可以自己写红黑树实现。担心自己实现可能bug过多。tmap.h#ifndef TMAP_H#define TMAP_H#include <stdio.h>#include <string>template <class Key> inline bool mapLessThanKey(cons原创 2021-04-05 18:13:40 · 864 阅读 · 0 评论 -
自定义 C++ hash
散列表 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 hash表,本质是拿内存的空间换查找的时间,就是hash表的优势是查找的时间复杂度是比较稳定的。#ifndef THASH_H#define THASH_H#include <stdlib.h>#include <iterator&原创 2021-04-05 18:12:13 · 678 阅读 · 0 评论 -
自定义 C++ Vector
vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。#ifndef TVECTOR_H#define TVECTOR_H#include <stdlib.h>#include <ASSERT.H>#include <string.h>原创 2021-04-05 17:52:52 · 764 阅读 · 0 评论 -
自定义实现 C++ list
c++的list为双向环形链表,优势在于可以快速插入删除任意节点,不能像vector通过下标快速访问元素。#ifndef TLIST_H#define TLIST_H#include <stdlib.h>#include <iterator>using namespace std;template <class T>class TList{private: struct node { T date; n原创 2021-04-05 17:50:59 · 820 阅读 · 0 评论 -
C++ 的标准库容器的实现
C++ 的标准库容器的实现listvectorforward_list二叉树与哈希表map二叉树与哈希表setdequequeuestack原创 2021-03-15 22:03:10 · 103 阅读 · 0 评论