迭代器和I/O

迭代器用在处理元素序列的地方。

 可以将迭代器的概念有效利用在输入输出上。

【输出:】

#include <iostream>
#include <string>
#include <iterator>
using namespace std;
ostream_iterator<string> oo(cout);
int main()
{
	*oo = "Hello,";
	++oo;
	*oo = "World\n";
	cin.get();
	return 0;
}

上述代码打印出hello,world和cout相同。

【输入】

#include <iostream>
#include <string>
#include <iterator>
using namespace std;
istream_iterator<string> ii(cin);
int main()
{
	string s1, s2;
	s1 = *ii;
	ii++;
	s2 = *ii;
	cout << s1 << "," << s2 << endl;
	system("pause");
	return 0;
}

【一般应用】:读入一个文件,排序好之后将其非重复内容输出到另外一个文件。(文件直接的字符以回车为分割符)

#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
	string from, to;
	cin >> from >> to;

	ifstream is(from.c_str());
	istream_iterator<string> ii(is);
	istream_iterator<string> eos;

	vector<string> b(ii, eos);
	sort(b.begin(), b.end());

	ofstream os(to.c_str());
	ostream_iterator<string> oo(os, "\n");

	unique_copy(b.begin(), b.end(), oo);

	return !is.eof() || !os;
}

猜你喜欢

转载自blog.csdn.net/qq_42418668/article/details/89787276