iostream_iterator是绑定了输入输出流的迭代器,分为输入流迭代器和输出流迭代器
istream_iterator
支持动作
istream_iterator<T>it(is)
istream_iterator<T>end;
* it
it->mem
it++
it1==it2
it1!=it2
实例:
istream_iterator<int>iter(cin),eof;
vector<int>vec(iter,eof);
//相当于用cin的数据构建vec数组
istream_iterator<int>iter(cin),eof;
cout<<accumulate(iter,eof,0)<<endl;
//将输入的数字累加后输出
ostream_iterator
ostream_iterator<T>out(os);
ostream_iterator<T>out(os,d);//每次输出都会在末尾多输出个d
out=val;
*out;++out;++out;
实例:
ostream_iterator<int>out_iter(cout," ");
for(auto e:vec)//循环输出数组中的数
*out_iter++ =e;
cout<<endl;
copy(vec.begin(),vec.end(),out_iter);//输出数组中的数
cout<<endl;