本系列文章参考《stl源码剖析》,以自己的观点解释stl,当作自己的学习笔记,如有错误请指出,谢谢大家。
本系列文章适用于对stl有了解但是还未参透者,先从使用的角度,逐渐渗透到其原理,流程为先介绍各种组件及其联系,然后介绍容器(vector,list...)的使用,并剖析其主要实现原理,然后介绍迭代器,空间配置器(内存管理),及其他。
首先介绍stl六大组件
1.容器(containers):如vector,list,set,map,从实现角度来看stl容器是一种类模板(class template)。
2.算法(algorithms):如sort,search,copy,erase... 从实现的角度来讲stl算法是一种函数模板(function template)
3.迭代器(iterators):算法与容器之间的胶合剂,可以认为是互相使用的工具,所谓的"泛型指针"。
4.仿函数(functors):行为类似函数,可作为算法的某种策略,从实现的角度,仿函数是一种重载了operator()的class或class template,一般函数指针可视为狭义的仿函数。
5.配接器()
6.配置器(allocators):负责空间配置与管理,从实现的角度来说,配置器是一个实现了动态空间配置,空间管理,空间释放的class template。