1.定义:
迭代器(iterator)模式又称为游标(Cursor)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由iterator提供的方法)访问聚合对象中的各个元素。2.迭代器产生的本质。
Iterator类的访问方式就是把不同集合类的访问逻辑抽象出来,使得不用暴露集合内部的结构而达到循环遍历集合的效果
3.迭代器的类型
随机访问迭代器(RandomAccessIterator)----------vector,deque
双向迭代器(BidirectionalIterator)------list以及有序关联式容器
前向迭代器(ForwardIterator)-------------无序关联式容器
输出迭代器(OutputIterator)
输入迭代器(InputIterator)
4.流迭代器:ostream_iterator和istream_iterator的使用,看其源码,看源码的步骤5.迭代器适配器
back_inserter函数模板,返回类型是back_insert_iterator
back_insert_iterator是类模板,底层调用了push_back函数
front_inserter函数模板,返回类型是front_insert_iterator
front_insert_iterator是类模板,底层调用了push_front函数
inserter函数模板,返回类型是insert_iterator
insert_iterator是类模板,底层调用了insert函数
6.逆向迭代器(反向迭代器):reverse_iterator
1.osteram_iterator。
copy--->>看copy源码的步骤,copy+ostream_iterator源