/*迭代器分类(it):++,*,->,==,!=
输入迭代器:可读*it的值,但不一定能修改(设置)*it的值
输出迭代器:可以设置*it的值,但不一定能读取*it的值
前向迭代器:可以读取也可以设置*it的值
双向迭代器:支持--
随机迭代器:几乎跟指针一样,支持--,+n,-n,比较大小,[下标]
*/
#include <iterator>
#include <iostream>
using namespace std;
#include <algorithm>
#include <vector>
#include "print.h"
#include <fstream>
int main()
{
istream_iterator<int> in(cin);
istream_iterator<int> end;
vector<int> vi;
copy(in,end,back_inserter(vi));//从标准输入读取int型值
print(vi.begin(),vi.end());
ostream_iterator<int> o(cout,"*");
copy(vi.begin(),vi.end(),o);cout<<endl;//将值从标准输出中输出,以“*”间隔
ofstream fo("datafile");
ostream_iterator<int> fiter(fo," ");
copy(vi.begin(),vi.end(),fiter);fo<<endl;//将值保存到文件“datafile”
fo.close();
ifstream fin("datafile");
istream_iterator<int> fit(fin);
vector<int> v;
copy(fit,end,back_inserter(v));//将值从datafile读出并打印
print(v.begin(), v.end(), ',');
fin.close();
}
/*
输入:
9 8 7 6 5 4 3 2 1
输出:
9 8 7 6 5 4 3 2 1
9*8*7*6*5*4*3*2*1*
9,8,7,6,5,4,3,2,1,
*/
C++ 文件操作中迭代器的使用(权哥)
最新推荐文章于 2023-05-16 11:53:35 发布