首页 > 代码库 > 流迭代器的使用

流迭代器的使用

10.29 编写程序,使用流迭代器读取一个文本文件,存入一个vector中的string里。

#include<iostream>#include<vector>#include<fstream>#include<string>#include<iterator>using namespace std;int main(){    ifstream in("1.txt");    istream_iterator<string> in_iter(in),eof;    ostream_iterator<string> out_iter(cout," ");    vector<string> vec;    while(in_iter!=eof)        vec.push_back(*in_iter++);    for(auto v:vec)        out_iter=v;    cout<<endl;    return 0;}

 

10.30 使用流迭代器、sort和copy从标准输入读取一个整数序列,将其排序,并将结果写到标准输出。

#include<iostream>#include<vector>#include<fstream>#include<iterator>#include<algorithm>using namespace std;int main(){    istream_iterator<int> in_iter(cin),eof;    ostream_iterator<int> out_iter(cout," ");    vector<int> vec;    while(in_iter!=eof)        vec.push_back(*in_iter++);    sort(vec.begin(),vec.end());    copy(vec.begin(),vec.end(),out_iter);    cout<<endl;    return 0;}

 

10.33 编写程序,接受三个参数:一个输入文件和两个输出文件的文件名。输入文件保存的应该是整数。使用istream_iterator读取文本输入文件。使用ostream_iterator将奇数写入第一个输出文件,每个值之后都跟一个空格。将偶数写入第二个输出文件,每个值都独占一行。

#include<iostream>#include<vector>#include<fstream>#include<iterator>using namespace std;int main(){    ifstream in("1.txt");    ofstream out1("2.txt");    ofstream out2("3.txt");    istream_iterator<int> in_iter(in),eof;    ostream_iterator<int> out_iter1(out1," ");    ostream_iterator<int> out_iter2(out2,"\n");    vector<int> vec;    while(in_iter!=eof)        vec.push_back(*in_iter++);    for(auto v:vec)    {        if(v%2)          out_iter1=v;        else          out_iter2=v;    }    cout<<endl;    return 0;}