您的位置:首页 > 其它

【STL源码剖析读书笔记】【第1章】STL概论与版本简介

2015-04-29 15:52 232 查看
一、STL六大组件:

1、容器(containers):各种数据结构,如:vector、list、deque、set、map,主要用来存放数据。

2、算法(algorithms):各种常见算法,如:sort、search、copy、erase......

3、迭代器(iterators):扮演算法和容器中的胶合剂,是“泛型指针”。所有STL容器均有自己专属的迭代器。

4、仿函数(functors):行为类似函数,可作为算法的某种策略。仿函数是一种重载了operato()的class或classtemple。

5、配接器(adapters): 修饰容器、仿函数、迭代器接口的东西。

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

二、STL六大组件的交互关系

Container通过Allocator取得数据储存空间,Algorithm通过Iterator存取Container内容,Functor可以协助Algorithm完成不同的策略变化,Adapter可以修饰或套接Functor。





图片来自《STL源码剖析》



三、STL的编译器组态

不同的编译器对C++语言的支持程度不尽相同。为了具备广泛移植能力,SGI STL定义了一个环境组态文件<stl_config.h>。<stl_config.h>定义了许多常量,标示某些组态是否成立。如__STL_STATIC_TEMPLATE_MEMBER_BUG用来标识当前编译器无法处理staic members of template classes。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: