为什么要把数组这样包装呢?
不包装的话,算法就不能使用数组这样的形式了,将数组排除在外了。
因为算法需要对询问迭代器的五种关联类型。
包装后 算法就可以选择最优的迭代器来实行算法
why?
不是已经了有Iterator Traits吗?用这个不就使用普通指针作为退化的迭代器了从而使用算法<algorithm>
了?
关于迭代器分类
按照定义分类:
按功能分类:
另外,关于输入和输出迭代器:
输入迭代器:只能前向读取的迭代器,支持++,不能–
输出迭代器:只能前向写入的迭代器,支持++,不能–
这两种迭代器最简单,基本只能读取/写入一次
回到array
与其他容器不同的是,需要制定大小,因为大小是固定的。
注:没有构造和析构函数
上图看出,迭代器就是用的元素本身的指针