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是怎么判定的,是第一次操作才有效吗? 展开
#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是怎么判定的,是第一次操作才有效吗? 展开
1个回答
展开全部
//我手上没有环境,应该可以运行的
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询