定义:
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");
 }