关于ostream_iterator流迭代器实现输出

ostream_iterator是流迭代器,是一个类模板,使用时要添加< iterator>和< iostream>库文件,声明元素类型,构造函数第一个参数为输出流对象,可以是cout,也可以是文件等;第二个参数是分隔符,放到输出流的时候,每放一个元素,就后面添加一个分隔符。

#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
	ostream_iterator<int> output(cout, "#");
	vector<int> tmp;
	int num;
	while (cin >> num)
		tmp.push_back(num);
	copy(tmp.begin(), tmp.end(), output);
	return 0;
}

ostream_iterator用于简化过程,常常在调用函数产生了新的容器时,传入ostream_iterator参量来对新容器直接输出,不需要中间变量。可以写成如下样式

merge(arg1.begin(),arg1.end(),arg2.begin(),arg2.end(),ostream_iterator<int>(cout," "));

注意:如果是自己编写的类或结构体,还需要重载<<运算符。

发布了15 篇原创文章 · 获赞 4 · 访问量 470

猜你喜欢

转载自blog.csdn.net/benobug/article/details/104978316