在C++中,流(stream)也可以看做是容器,因而也有相应的iterator来遍历流中的内容,其中就有本文要介绍的两个流迭代器:istreambuf_iterator和istream_iterator,这两个迭代器的用法和区别可以用一下两段代码来体现:
例1:istreambuf_iterator
- #include <fstream>
- #include <iostream>
- #include <iterator>
- using namespace std;
- int main(){
- ifstream in("test.cpp");
- istreambuf_iterator<char> isb(in),end;
- ostreambuf_iterator<char> osb(cout);
- while(isb!=end)
- *osb++ = *isb++;
- cout<<endl;
- return 0;
- }
例2:
- #include <fstream>
- #include <iostream>
- #include <iterator>
- using namespace std;
- int main(){
- ifstream in("test.cpp");
- istream_iterator<char> isb(in),end;
- ostream_iterator<char> osb(cout);
- while(isb!=end)
- *osb++ = *isb++;
- cout<<endl;
- return 0;
- }