流式迭代器:把键盘上的数据直接输入到容器中。
输入流迭代器
输出流迭代器
//实现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;
}