自制一套属于自己的STL(前言)
各位看到标题是不是被我唬住了?
如果是也别太紧张,我的水平其实一般般的。
想必各位在C++的编程过程中肯定用过STL(Standard Template Libary),肯定也知道STL的强大与方便,所以在这个专栏里面,我会带着大家写一套属于自己的STL(肯定没有标准库写得好,但基础功能还是有的)
之后我们主要会走以下这些流程:
了解STL
学习模板的知识
了解STL框架(容器、迭代器、分配器,组合)
动手写一个Array——静态数组
动手写一个Allocator——分配器
动手写一个Vector——动态数组
动手写一个Any——动态类型
动手写一个Deque——双端队列
用Deque实现Queue——队列、Stack——栈
动手写一个RBTree——稳定红黑树
用RBTree实现Set——集合、Map——映射
除了上面这些,我还打算做一些标准库没有的东西:
实现一个BigInt类——高精度整数加减乘除
实现一个BigDec类——高精度浮点数加减乘除
实现一个Picture类——存图和遍历图
实现一个FindUnion类——封装并查集
实现一个Range类——实现python中range的作用并借用Base-For-Range特性
实现All_T和Any_T——python中的all和any
实现一个Hash表
最后,大家别太关注我的更新,我还是学生,所以更新的可能会有些慢,并且有的地方可能会有学术性错误,希望看出来的大佬多多指正和帮助,谢谢!