iostream iterater的作用

来源:百度知道 编辑:UC知道 时间:2024/07/07 19:32:43
正在学习essential c++.
里面讲到用iostream iterator来代替standard cin,cout.从而使问题简化。他的例子是调用泛型算法copy
vector<string>a;
iostream_iterator<string>is(cin);
iostream_iterator<string>eof;
copy(is,eof,back_insert(a));
这样做有什么用。为什么要使用iostream iterater?
我知道迭代器.我想知道的是这样和CIN邦定的作用?为什么要邦定?好处有哪些?

这是个流迭代器,不知道你对跌代器有没有概念!
iostream_iterator<string>is(cin);//让这个流跌代器和cin绑定!
iostream_iterator<string>eof;//直接这样定义,就是指该跌代器超出末端位子!(ostream_iterator没有!)
copy(is,eof,back_insert(a));//这句意思就是一直输入,直到输入结束,把每个输入的string插入到a中,其中的back_insert()是个插入迭代器!!

为了方便使用啊,不知道你书上有没有这样的例子
istream_iterator<int> in_iter(cin);
istream_iterator<int>eof;
vector<int> vec(in_iter,eof);
这样的话就能把输入的数压入容器了!!!
C++ primer P351