16.4.1 为何使用迭代器

### 理解迭代器是理解STL的关键所在。模板使得算法独立于存储的

### 数据类型,而迭代器使得算法独立于使用的容器类型

### 因此它们都是STL通用方法的重要组成部分

泛型编程旨在使函数不仅独立于容器中存储的数据类型(可以为char、double等),

而且独立于容器本身的数据结构(可以是数组或是链表等)

模板提供了存储在容器中的数据类型的通用表示,因此还

需要遍历容器中的值(不区分容器种类)的通用表示,迭代器正是这样的通用表示

迭代器可能具备的多种功能:

  1. 解除引用以访问值:定义*操作
  2. 将一个迭代器赋给另一个:定义=操作
  3. 与另一个迭代器比较,看是否相等:定义==和!=操作
  4. 拥有遍历的功能:定义++操作(前缀和后缀)
    • ### C++将operator++()作为前缀版本;将operator++(int)作为后缀版
    • ### 本;其中的参数永远不会用到,所以不必指定其名称

实际上,STL按功能的强弱定义了多种级别的迭代器。常规指针也满足迭代器要求

STL通过为每个类定义适当的迭代器,并以统一的风格设计类,能够对内部表示绝然不同

的容器,编写相同的代码

作为一种编程风格,最好避免直接使用迭代器,而应尽可能使用STL函数(for_each())来处理细节。

也可使用C++11新增的基于范围的for循环

总结:基于算法的要求,设计基本迭代器的特征和容器特征

原文地址:https://www.cnblogs.com/suui90/p/13545964.html