向专家学习STL

之前就有看过部分STL源码剖析(作者:侯捷),可能是看的不够细,思考的不够多,时间长了,似乎全都忘了,所以今天晚上心血来潮,计划花点时间在把关于STL的知识进行熟悉和学习。

此次学习计划将每天所学进行梳理并把心得在博客中记录,一是怕自己忘掉,回头可以通过自己写的博客快速回忆起来,好记性不如烂笔头吗,同时将学习过程中编写的代码上传Github;二是啥,想不到了。等想到了再来补充吧。

学习STL就不得不知道他所包含的六大组件,它们分别是:

  • 容器(containers):是一种class template,包含各种数据结构;

  • 算法(algorithms):是一种function template,包含各种常用算法;

  • 迭代器(iterators):是所谓的”泛型指针“,每一种容器都有自己的专属迭代器,知道如何遍历自己的元素;

  • 仿函数(functors):是一种重载了operator()的class 或 class template,可以作为算法的某种策略;

  • 配接器(adapters):是一种用来修饰容器或仿函数或迭代器接口的东西;

  • 配置器(allocators):是一个实现了动态空间配置、空间管理、空间释放的class template,负责空间的配置和管理。

下图展示了STL六大组件的交互关系:

捕获.PNG

参考书籍:《STL源码剖析》侯捷


猜你喜欢

转载自blog.51cto.com/10324228/2311949