1.迭代器种类
(1)input iterator
(2)output iterator
(3)forward iterator
(4)bidirectional iterator
(5)random access iterator
2.input iterator
信息从容器流入程序被称为输入,input迭代器被用于从容器中读取信息。Input迭代器只读,不能改写容器中的数据。
input迭代器支持++操作,前++后++都支持
input迭代器是单向的,可以自增,但不能退回。
用于单向只读算法
3.Output iterator
output iterator用于将程序中的数据写入容器。只写不能读。
用于单向只写算法
4.forward iterator
支持++操作,一步只访问一个容器元素。每次访问的顺序都相同。和input output迭代器不同。
int * pirw;//可读可写迭代器
const int *pir;//只读迭代器
5.bidirectional iterator
双向迭代器。支持++和--操作
6.random access iterator
随机访问迭代器。例如排序操作,二分搜索都需要随机访问。
7.copy(),osteram_iterator,istream_iterator
(1)copy().三个参数,起始位置迭代器,终止位置迭代器,目标迭代器。
(2)#include<iterator>
ostream_iterator<int,char> out_iter(cout," ");
int代表送向输出流的数据类型。char代表字符类型(char 或wchar_t).cout代表要使用的输出流,可以更换为文件输出流。
“ ”是数据的分隔符。
*out_iter++=15;//等价于cout<<15;
vector<int> dice[10];
例:copy(dice.begin(),dice.end(),out_iter);
(3)输入迭代器istream_iterator
copy(istream_iterator<int,char>(cin),istream_iterator<int,char>(),dice.begin());
int代表从迭代器中读入的数据类型。第二个参数表示读取只到文件末尾(不含参数的构造函数)
标签:iterator,迭代,STL,编程,++,istream,泛型,input,dice
From: https://www.cnblogs.com/zhongta/p/18382579