輸入輸出流迭代器
istream_iterator
- 創(chuàng)建一個istream_iterator,然后把它綁定到一個流
- 如果默認初始化,則是一個尾后值的迭代器
ostream_iterator
ostream_iterator<T> out(os) //out將類型為T的值寫到os流中
ostream_iterator<T> out(os, d) //out將類型為T的值寫到os流中沾凄,且在后面加上字符串d
有了輸入輸出流迭代器,我們可以把輸入輸出流當作容器來使用知允,在拷貝撒蟀,初始化等等有和容器操作相同的形式,代碼比較好看
例子
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
int main(int argc, char* argv[])
{
istream_iterator<int> in_iter(cin);
istream_iterator<int> int_eof;
vector<int> vec(in_iter,int_eof); //[1]
ostream_iterator<int> out_iter(cout," ");
copy(vec.cbegin(),vec.cend(),out_iter); //[2]
}
該段代碼接受屏幕輸入温鸽,然后輸出到屏幕保屯,然后[1]和[2]都是容器使用迭代器的操作。比我們直接寫循環(huán)顯得簡潔涤垫。