概念
STL有若干个用C++语言无法表达的特性,如迭代器种类。因此,虽然可以设计具有
正向迭代器特征的类,但不能让编译器将算法限制为只使用这个类。
STL文献使用术语概念来描述这一系列的要求。如果所设计的容器类需要迭代器,可
考虑STL,它包含用于标准种类的迭代器模板
改进
概念可以具有类似继承的关系。例如,双向迭代器继承了正向迭代器的功能。然而,不能将C++继承
机制用于迭代器。例如可以将正向迭代器实现为一个类,而将双向迭代器实现为一个常规指针。
有些STL文献使用术语改进来表示这种概念上的继承,因此,双向迭代器是对正向迭代器概念的一种
改进
模型
概念的具体实现被称为模型。因此指向int的常规指针是一个随机访问迭代器的模型。
将指针用作迭代器:
- ### 迭代器是广义指针,而指针满足所有的迭代器要求。迭代器是STL算法的接口,而指针是迭代器,
- ### 因此STL算法可以使用指针来对基于指针的非STL容器进行操作。例如,可将STL算法用于数组
可以将STL算法用于自己设计的数组形式,只要提供适当的迭代器(可以是指针,也可以是对象)和超尾
指示器即可