C++
文章平均质量分 94
Lyric康
记录学习过程,C/C++、数据结构、Linux系统与网络、MySQL和算法,更新中......
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STL—vector类的简单实现
上次介绍了STL的string类,这次介绍一下STL中的vector,vector类似于数据结构中的顺序表,那么string也是一个数组,它与vector的区别是什么呢?首先对于string类,因为其是字符数组,里面存有'\0',其次其可以实现字符的比较或者'+='之类的操作符重载。而vector里没有’\0‘,'+=',因为’+=‘对于其毫无意义。1、vector是一个表示可变大小数组的序列容器。原创 2024-07-04 21:52:35 · 1180 阅读 · 0 评论 -
AVL树的C++实现
首先我们要实现的是关联式容器,与序列式容器不同,其里面存储的是<key,value>的结构的键值对,这种存储在数据检索时比序列式容器的效率更高。其次,我们构造一个三叉链,除了定义两个孩子结点,还需要一个指向父亲的结点。接着,我们还需要一个平衡因子,方便我们监视和调整结点的子树的高度以满足平衡。所以我们给出下列类模板//三叉链int _bf;//balance factor平衡因子//存储的键值对, _bf(0), _kv(kv){}原创 2024-07-15 15:21:04 · 938 阅读 · 0 评论 -
红黑树的简单实现(C++)
红黑树是一种二叉搜索树,但是在每个结点上增加一个表示该点颜色的存储位,可以是Red或者Black,通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,相对于AVL树来说,红黑树是平衡。原创 2024-07-16 16:42:55 · 998 阅读 · 0 评论 -
Unordered_map和Unordered_set的底层实现(C++)
应用链地址法处理溢出的情况时需要增设链接指针,看起来似乎增加了存储开销,但是事实上由于开地址法必须保持大量的空闲空间以确保搜索的效率,而表项所占的空间又比指针大很多,所以使用链地址法比开放空间法更节省存储空间。原创 2024-07-27 10:33:39 · 1597 阅读 · 0 评论 -
STL-string类的实现
string就是字符串的意思,是用来表示字符序列的类,是C++用来代替char 数组的数据结构,里面封装了一些关于操作字符串的方法,该string类的接口与常规容器的接口基本相同,同时再添加了一些专门用来操作string的常规操作。但是不能操作多字节或者变长字符的序列。所以综上所述,我们就可以将string类理解为一个数组,只不过存储在该数组中的元素类型为char类型,且其大小可以实现动态增长,而且在数组末尾隐藏了'\0'原创 2024-06-27 16:22:40 · 837 阅读 · 0 评论
分享