流式迭代器

流式迭代器:把键盘上的数据直接输入到容器中。

输入流迭代器

输出流迭代器

//实现copy算法
template<class InputIterator,class OutPutIterator>
OutPutIterator Mycopy(InputIterator first1, InputIterator last, OutPutIterator first2)
{
	for (first1; first1 != last; ++first1)
	{
		*first2 = *first1;
	}
	return first2;
}

int main()
{
	int arr[] = { 363, 3, 13, 13, 1, 31, 3 };
	int len = sizeof(arr) / sizeof(arr + len);
	vector<int> vec(arr, arr + len); 
	vector<int> vec1;
	//copy(istream_iterator<int>(cin), istream_iterator<int>(), 
		//insert_iterator<vector<int>>(vec1,vec1.end()));
	Mycopy(istream_iterator<int>(cin), istream_iterator<int>(),
		insert_iterator<vector<int>>(vec1, vec1.end()));
	//迭代器区间,绑定结束区间时让缓冲区抛出异常
    return 0;
}

容器中的数据输入到文件

int main()
{
	int arr[] = { 363, 3, 13, 13, 1, 31, 3 };
	int len = sizeof(arr) / sizeof(arr + len);
	vector<int> vec(arr, arr + len);
	vector<int> vec1;
//输入流
	//copy(istream_iterator<int>(cin), istream_iterator<int>(), 
	//insert_iterator<vector<int>>(vec1,vec1.end()));
	Mycopy(istream_iterator<int>(cin), istream_iterator<int>(),
		insert_iterator<vector<int>>(vec1, vec1.end()));
	//迭代器区间,绑定结束区间时让缓冲区抛出异常,
//输出流

	//ofstream text("vec.txt");
	//copy(vec1.begin(), vec1.end(), ostream_iterator<int>(text));
    //test.close();
	//打印到屏幕上
	copy(vec1.begin(), vec1.end(), ostream_iterator<int>(cout,"."));
    Mycopy(vec1.begin(), vec1.end(), ostream_iterator<int>(cout,"."));
	//Show(vec1);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Aspiration_1314/article/details/88377066