.plan

everybody lies

导航

《STL源码剖析》笔记 1.1

STL 6大组件:
1, 容器(container):各种数据结构,如vetor,list,deque,set,map,用来存放数据;从实现来看,STL容器是一种class template。
2, 算法(algorithm):各种常用算法,如sort,search,copy,erase;从实现来看,STL算法是一种function template。
3, 迭代器(interator):扮演容器和算法之间的胶合剂,是所谓的泛型指针;从实现来看,迭代器是一种将operator*,operator->,operator++,operator—等指针相关操作予以重载的class template,所有容器都附带了自己的迭代器。
4, 仿函数(functor):行为类似函数,可作为算法的某种策略;从实现来看,仿函数是一种重载了operator()的class或者class template,一般函数指针可以视为狭义的仿函数。
5, 配接器(adapter):一种用来修饰容器或者仿函数或者迭代器的接口,如queue其实是dqueue的配接器。
6, 配置器(allocator):负责空间的配置和管理;从实现看,配置器是一个实现了动态空间配置,管理,释放的class template。
STL中需要注意的语法(70页):
1,临时对象的产生
所谓的临时对象,就是一种无名的对象,有时候可以制造一些临时对象来调用construtor而不指定对象名称。方法是在类型名称后直接加上一对小括号,并可以指定初值。
2,前闭后开区间
因为容器的实际范围是从first开始一直到last-1,因为last指向的是最后一个元素的下一个位置。
3,fuction call操作符(仿函数)
如果针对某个class 进行operator()重载,那么它就成为一个仿函数。

posted on 2009-12-02 22:46  housechen  阅读(338)  评论(0编辑  收藏  举报