之前就有看过部分STL源码剖析(作者:侯捷),可能是看的不够细,思考的不够多,时间长了,似乎全都忘了,所以今天晚上心血来潮,计划花点时间在把关于STL的知识进行熟悉和学习。
此次学习计划将每天所学进行梳理并把心得在博客中记录,一是怕自己忘掉,回头可以通过自己写的博客快速回忆起来,好记性不如烂笔头吗,同时将学习过程中编写的代码上传Github;二是啥,想不到了。等想到了再来补充吧。
学习STL就不得不知道他所包含的六大组件,它们分别是:
容器(containers):是一种class template,包含各种数据结构;
算法(algorithms):是一种function template,包含各种常用算法;
迭代器(iterators):是所谓的”泛型指针“,每一种容器都有自己的专属迭代器,知道如何遍历自己的元素;
仿函数(functors):是一种重载了operator()的class 或 class template,可以作为算法的某种策略;
配接器(adapters):是一种用来修饰容器或仿函数或迭代器接口的东西;
配置器(allocators):是一个实现了动态空间配置、空间管理、空间释放的class template,负责空间的配置和管理。
下图展示了STL六大组件的交互关系:
参考书籍:《STL源码剖析》侯捷