istream_iterator<要从流中读取的数据类型> 迭代器名(绑定的流);//创建的时候,就会调用标准输入
istream_iterator<要从流中读取的数据类型> 迭代器名; //没有绑定流,指向流的结束位置
具体示例请看《STL中流迭代器的学习 》(http://www.cjjjs.com/paper/lkkj/2015111215822960.aspx)
对于流迭代器变量的定义,请注意一点。正常我们定义一个istream_iterator变量有两种方法:
istream_iterator<string>(cin)//直接就是这样进行操作
istream_iterator<string> in_iter(cin)//定义完一个对象在进行操作
对于流结束位置的定义:
istream_iterator<string>();
istream_iterator<string> in_iter;
就这两种,没有
istream_iterator<string> in_iter();
下面我们输出一个string的流:
#include<iostream>
#include<iterator>
#include<string>
#include "windows.h"
#include "algorithm"
using namespace std;
int main()
{
istream_iterator<string> in_iter(cin),eof; //注意:stream_iterator<string> in_iter(cin)要求第一次输入
//sort(in_iter,eof);
ostream_iterator<string> out_iter(cout,"\n"); // 绑定流对象cout,元素之间分隔符为换行
while(in_iter!=eof)
{
*out_iter=*in_iter; //输入流解引用,取得值后,给输出流,输出。
++out_iter;
++in_iter;
}
system("pause");
}