概述
学习和理解template 和STL 的最好方式就是自己用template 造一个STL(俗称造轮子),然后不断对比自己版本的STL与标准版本的STL(sgi STL 或者其它版本),不断重构自己的版本,使自己的版本达到或者超过标准库版本。
计划
- 实现Containers Library (中的一种或几种)
- 实现Algorithms Library (中的一种或几种)
- 实现String Library ,并替换前面实现部分中的std::string (如果有使用到)为自己的版本;
- 编译为dll/lib/so 文件,供自己他人使用
- 引入Google Test 框架,完善测试代码,注释,不断重构,提升自己实现版本性能(达到或超过标准库);
接口实现尽量与标准库保持一致,参考cppreference
由于工作的原因,投入的时间不固定,所以TinySTL的设计与实现会是一个相对比较长期的过程。
在实现过程中会通过一系列文章总结,分享自己在实现中遇到的各种问题,各种坑。
项目地址
进度
2016.3.20 , vector 完成,参考 TinySTL 之vector 设计,实现与中间的坑