*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights reserved.
*文件名称:main.cpp
*作者:孙亚茹
*完成日期:2016年6月17日
*问题描述:填空将程序补充完整,通过输出流迭代器来写入“流cout”。程序执行时,如果输入为:1 2 3 4 5 q ,则输出为:1,2,3,4,5,
1 | 2 | 3 | 4 | 5 | 。
*//
(1)
#include<iostream>
#include<vector>
#include<iterator>
#include<algorithm>
using namespace std;
int main()
{
vector<int> col1;
istream_iterator<int> intreader(cin),eof;;
while(intreader!=eof)
{
col1.push_back(*intreader); // (1)
++intreader; // (2)
}
ostream_iterator<int> intwriter(cout,","); // (3)
copy(col1.begin(),col1.end(),intwriter);
cout<<endl;
copy(col1.begin(),col1.end(),ostream_iterator<int>(cout,"|")); // (4)
cout<<endl;
return 0;
}
总结:
eof后面的两个;;和一个没什么区别,运行都能通过。
如果输入是12345之间是没有空格的则输出结果为12345,12345|,而如果输入时中间加空格则输出结果为1,2,3,4,5,
在无限循环中可以以末尾加q或末尾加^z结束。
(2)
#include<iostream>
#include<vector>
#include<algorithm>
#include<iterator>
using namespace std;
int main()
{
vector<int> col1(5);
copy(istream_iterator<int>(cin),istream_iterator<int>(),col1.begin());
ostream_iterator<int> intwriter(cout,",");
copy(col1.begin(),col1.end(),intwriter);
cout<<endl;
copy(col1.begin(),col1.end(),ostream_iterator<int>(cout,"|"));
cout<<endl;
return 0;
}
总结:
注意(1),(2)运行结果的比较,可以看出第二个程序中clll(5)输出时虽然后三位没有什么但还是会输出0,0,0