有个极好的问题要问,istream_iterator 在使用++时,是不是等于调用了cin>> ?
创建一个istream_iterator的对象,绑定cin,是不是等同调用了cin>>,同时将输入的内容读到一个匿名对象中,然后用*来读istream_iterator的对象,就等于是读那个匿名对象, 在使用++时,是不是等于调用了cin>>,将输入的内容读到前面那个匿名对象中。
[解决办法]
是的。。。。
[解决办法]
确实就是这样实现的:
_Myt& operator++()
{
_Getval();
return (*this);
}
void _Getval()
{
if (_Myistr != 0 && !(*_Myistr >> _Myval))
_Myistr = 0;
}