//首先需要引入iterator头文件
#include <iterator>
#include <iostream>
#include <sstream>
#include <vector>
#include <string>

using namespace std;

int main(){

    vector<int> vec = {0,1,2,3};
    stringstream ss;
    string str;
    //以逗号空格分割
    copy(vec.begin(),vec.end(),ostream_iterator<int>(ss,", "));
    str = ss.str();
    cout << str << endl;

    return 0;

}

istream_iterator和ostream_iterator分别支持单一类别的多个元素的读取和输入

#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
void to_text()
{
    string text;
    istream_iterator<int> is(cin);//绑定标准输入装置
    istream_iterator<int> eof;//定义输入结束位置,end_of_file
    copy(is,eof,back_inserter(text));
    sort(text.begin(),text.end());

    ostream_iterator<int> os(cout,", ");//绑定标准输出装置
    copy(text.begin(),text.end(),os);
}

int main()
{
    ifstream in_file("input_file.txt");
    ofstream out_file("output_file.txt");
    if(!in_file || !out_file)
    {
        cout<<"filesopen failed!\n";
        return -1;
    }

    //将输入流的内容写道text中
    //to_text();


    istream_iterator<string> is(in_file);
    istream_iterator<string> eof;
    vector<string> text;

    copy(is,eof,back_inserter(text));
    sort(text.begin(),text.end());

    ostream_iterator<string> os(out_file," ");
    copy(text.begin(),text.end(),os);
    return 0;
}

参考:STL中istream_iterator和ostream_iterator的基本用法 - VIPler - 博客园 (cnblogs.com)

更多推荐