C++使用iostream迭代器

标准库定义了可以用于IO类型对象的迭代器,istream_iterator读取输入流ostream_iterator向一个输出流写数据。

最初接触到这个流迭代器,是因为在陈硕老师“用STL algorithm轻松解决几道算法面试题”中,用流迭代器的方式打印数据容器中的数据很方便,就学了一下,用法很简单,示例如下:

test_istream.cpp

#include <iostream>
#include <iterator>
#include <algorithm>
#include <numeric>
#include <vector>
using namespace std;
int main()
{
#if 1 
    istream_iterator<int> input(cin);
    istream_iterator<int> eof;
    cout<<endl<<accumulate(input,eof,0)<<endl;
#endif
    return 0;
}

这里写图片描述

test_ostream.cpp

#include <iostream>
#include <iterator>
#include <algorithm>
#include <numeric>
#include <vector>
using namespace std;
int main()
{

    istream_iterator<int> eof;

    istream_iterator<int> vec_input(cin);

    vector<int>vec;
    while(vec_input!=eof)
    {
        vec.push_back(*vec_input++);
    }
    ostream_iterator<int> vec_output(cout,"\n");
    copy(vec.begin(),vec.end(),vec_output);
    cout << endl;

    return 0;
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值