除了为每个容器定义的迭代器之外,标准库在头文件iterator中还定义了额外几种迭代器,包括:
(1)插入迭代器(insert_iterator):被绑定到一个容器上,可用来向容器插入元素。
(2)流迭代器(stream_iterator):被绑定到输入输出流,可用来遍历所关联的IO流。
(3)反向迭代器(reverse_iterator):向后而不是向前移动,除了forward_list之外的标准库容器都有反向迭代器
(4)移动迭代器(move_iterator):不拷贝其中的元素,而是移动它们。
插入迭代器有三种类型:
(1)back_inserter:创建一个使用push_back的迭代器。
(2)front_inserter:创建一个使用push_front的迭代器。
(3)inserter:创建一个使用inserter的迭代器。此函数接受两个参数,第一个表示给定的迭代器,第二个表示要参入的元素,元素将被插入给定迭代器之前。
当创建一个流迭代器时,必须指定将要读写的对象类型,流迭代器有两种类型:
(1)istream_iterator:istream_iterator<int> int_it(cin); //从cin读取int istream_iterator<int> int_eof;//默认初始化迭代器,即尾后迭代器
(2)ostream_iterator: