STL 六大组件概述

来源:互联网 发布:空中英语教室 知乎 编辑:程序博客网 时间:2024/06/07 02:05

(一)STL提供六大组件:

(1)容器(containers):

顺序容器(sequence):vector、list和deque。

关联容器(associative):set和map。

从实现角度来看,STL容器是一种class template。


(2)算法(algorithms)

从实现角度来看,STL算法是一种function template。


(3)迭代器(iterators)

迭代器扮演容器和算法之间的胶合剂,是所谓的“泛型指针”,共有五种类型,以及其他衍生变化。

所有STL容器都附带有自己的专属的迭代器,只有容器的设计者才知道如何遍历自己的元素。原生指针(native pointer)也是一种迭代器。


(4)仿函数(又称函数对象)(functors)


(5)配接器(adapters)

用来修饰容器或仿函数或迭代器接口。

包括三种类型:

容器配接器(container adapter):改变容器接口。

迭代器配接器(iterator adapter):改变迭代器接口。

仿函数配接器(function adapter):改变仿函数接口。


(6)配置器(allocators):

负责空间的配置和管理。


(二)关系

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

原创粉丝点击