c++的stl中ostream_iterator迭代器是怎么判定的? 30

#include<iostream>#include<algorithm>#include<vector>#include<iterator>usingnamespace... #include<iostream>
#include<algorithm>
#include<vector>
#include<iterator>
using namespace std;
int main()
{
istream_iterator<int> My_cin(cin);
istream_iterator<int> My_end;
ostream_iterator<int>oscopy(cout, "\n");//问题,这里默认设定cin流的第一个元素,是怎么回事?
vector<int>vecint(My_cin, My_end);//比如说输入4 5 6 ctrl+z 然后显示的是4,就是上面的问题
while(My_cin != My_end)
{
*oscopy++ = * My_cin++;
}//还有就是对于流的迭代器,一旦赋值完成就显示,有什么条件约束吗?
system("pause");
return 0;
}
这个ostream_iterator是怎么判定的,是第一次操作才有效吗?
展开
 我来答
物理公司的
2015-02-15 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1321万
展开全部
//我手上没有环境,应该可以运行的
#include <iostream>
#include <numeric>
#include <vector>
#include <iterator>
using std::cout;
using std::cin;
using std::endl;
using std::vector;
using std::istream_iterator;
using std::ostream_iterator;
using std::back_inserter;
using std::accumulate;


int main()
{
    vector<int> numbers;
    cout << "Enter a series of integers separated by spaces" 
        << " followed by Ctrl+Z or a letter:" << endl;

    istream_iterator<int> input(cin), input_end;
    ostream_iterator<int> out(cout, " ");

    copy(input, input_end, back_inserter<vector<int>>(numbers));

    cout << "You entered the following values:" << endl;
    copy(numbers.begin(), numbers.end(), out);

    cout << endl << "The sum of these values is " 
        << accumulate(numbers.begin(), numbers.end(), 0) << endl;

    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式