看C++ STL一个月了,小结下这个阶段的学习所得;
容器是以class template完成;内存管理师由memory pool完成;算法是由function template完成;仿函数(函数对象)是一种将operation ( )重载了的class template;迭代器是泛型指针,也是种智能指针,将operator++、operator * 等指针习惯行为重载的class template; 配接器是将一个class的接口转换为另一个class的接口,是原本接口不兼容而不能合作的class可以一起运作,container
adapters内含了一个container member(stack和quene内涵了deque,set和map是内含了RBTree,priority quene内含了heap) ,iterator adapters内含了迭代器成员或者指针,function adapters内涵一个函数指针。
下面这张图显示了STL六大组件之间的关系
Container使用Allocator管理内存空间,Algorithms使用Contatiner内涵的Iterators以及搭配使用Iterator Adapters、Function object(搭配使用Function Adapters)来完成算法操作。
STL中使用到型别技术、配置器、迭代器等都是加上了一层封装使得操作具有间接性,这种间接性又使得形成了抽象性.......
OK这一阶段的学习告一段落,收获颇丰!
时间: 2024-11-01 11:01:59