流迭代器的使用

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;

}

 

你可能感兴趣的:(迭代器)