理解STL的钥匙——迭代器
- 迭代器是一种概念模型,满足一定的行为要求(如: 解引用,自增,自减,……)。根据不同的要求,STL定义了5种类型的迭代器
Input Iterator,Output Iterator,Forward Iterator,Bidirectional Iterator,Random-access Iterator - 迭代器是一种传统C指针的推广(广义指针),指针是一种特殊的迭代器
- 迭代器为算法提供了一种遍历数据结构元素的方法
- 迭代器将算法实现与具体数据结构解耦
- 迭代器与容器也是解耦的,尽管每一种容器都会定义它自己的迭代器
理解STL的核心——容器、算法、迭代器三个核心组件及其配合使用
其他杂项——函数对象、分配器、装饰器
函数对象
- 函数概念的推广
Just as iterators are a generalization of pointers, function objects are a generalization of functions: a function object is anything that you can call using the ordinary function call syntax - 函数对象不仅对类型进行抽象,还对操作进行抽象
Function objects are an important part of generic programming because they allow abstraction not only over the types of objects, but also over the operations that are being performed.
网友评论