本仓库原是《STL源码剖析》一书的代码合集,并在其基础上运用部分C++11特性进行了代码改写。最终希望根据SGI STL SOURCE完成一个简易STL标准库。
针对SGI STL Source,有学习计划如下:
- 第一阶段:通读全文,了解数据结构的底层实现与算法流程,针对书本完成代码撰写与整理。
- 第二阶段:补全各容器的实现。
- 第三阶段:针对容器类加入C++11新特性,如move语义,initialized_list构造等,撰写完备的单元测试。(进行中)
- 第四阶段:测试MiniSTL性能,并与std作对比,总结原因。
- 空间适配器(allocator)
构造析构工具(contruct.h):100%
二级空间适配器(alloc.h):100%
内存基本处理工具(uninitialized.h):100%
- 迭代器与traits编程技法(iterator && traits)
iterator_traits(stl_iterator.h):100%
type_traits(type_traits.h):100%
- 序列式容器(sequence containers)
vector(stl_vector.h):100%
list(stl_list.h):100%
deque(stl_deque.h):100%
stack(stl_stack.h):100%
queue(stl_queue.h):100%
priority_queue(priority_queue.h):100%
slist(slist.h):100%
- 关联式容器(associattive containers)
rb_tree(rb_tree.h):100%
set(stl_set.h):100%
map(stl_map.h):100%
hashset(hashset.h):100%
hashmultiset(hash_multiset.h):100%
hashmultimap(hash_multimap.h):100%
- 算法(algorithm)
数值算法(stl_numeric.h):100%
基本算法(stl_algobase.h):100%
其他算法(stl_algo.h):100%
- 仿函数(function object)
算术、关系运算、逻辑运算仿函数(stl_function.h):100%
- 配接器(adapter)
容器类配接器(stack
、queue
):100%
迭代器配接器(insert_iterator
、reverse_iterator
、istream_iterator
):100%
仿函数配接器(not1
、not2
、bind1st
、bind2nd
、compose1
、compose2
、ptr_fun
...):100%
本仓库代码编译环境为macOS High Sierra 10.13.6,Homebrew GCC 7.4.0。
MIT.