16.4.4 概念、改进和模型(上)

概念

STL有若干个用C++语言无法表达的特性,如迭代器种类。因此,虽然可以设计具有

正向迭代器特征的类,但不能让编译器将算法限制为只使用这个类。

STL文献使用术语概念来描述这一系列的要求。如果所设计的容器类需要迭代器,可

考虑STL,它包含用于标准种类的迭代器模板

改进

概念可以具有类似继承的关系。例如,双向迭代器继承了正向迭代器的功能。然而,不能将C++继承

机制用于迭代器。例如可以将正向迭代器实现为一个类,而将双向迭代器实现为一个常规指针。

有些STL文献使用术语改进来表示这种概念上的继承,因此,双向迭代器是对正向迭代器概念的一种

改进

模型

概念的具体实现被称为模型。因此指向int的常规指针是一个随机访问迭代器的模型。

将指针用作迭代器:

  • ### 迭代器是广义指针,而指针满足所有的迭代器要求。迭代器是STL算法的接口,而指针是迭代器,
  • ### 因此STL算法可以使用指针来对基于指针的非STL容器进行操作。例如,可将STL算法用于数组

可以将STL算法用于自己设计的数组形式,只要提供适当的迭代器(可以是指针,也可以是对象)和超尾

指示器即可

posted @ 2020-08-22 17:32  孱陵  阅读(104)  评论(1编辑  收藏  举报