第二种迭代器适配器就是流迭代器(Stream Iterator).
Stream Iterator有两种:istream_iterator和 ostream_iterator
istream_iterator用于从流中读取数据,包括标准输入流istream,文件输入流ifstream,字符输入流isstream.
ostream_iterator用于将取数据写到流中,包括标准输出流istream,文件输出流ofstream,字符输出流osstream.
使用这两个流迭代器需要包含头文件 #include <iterator>
举个例子:
vector<string> stringVec;
copy(istream_iterator<string>(cin),
istream_iterator<string>(),
back_inserter(stringVec));
sort(stringVec.begin(),stringVec.end());
unique_copy(stringVec.begin(),stringVec.end(),
ostream_iterator<string>(cout,"\n"));
简单的三个语句,就可完成大量的操作!
在Windows XP平台下,结束输入按 Ctrl+Z
ostream_iterator的第二个参数表示元素之间的分隔符!
适用于所有的STL容器.