输入迭代器仅能对它所选择的容器中的每个元素进行一次解析的意思是什么?
如题。请大家回答,凑足10个字。
[解决办法]
从输入迭代器读入一个数据之后,无法通过它再读这个数据一次。因为输入迭代器的++操作符什么也不做,而是在消引用操作符中另迭代器前进,同时它没有--操作符。
whild( *it != '\0' )
{
s.push_back(*it);
++ *it;
}
这段代码对顺序访问迭代器、随机迭代器都是可行的,但对输入迭代器不可行。应该改为:
whild( ( ch = *it ) != '\0' )
{
s.push_back(ch);
++ *it;
}
这样才能适用于输入、顺序和随机三种迭代器。注意++不可省,虽然输入迭代器不需要它,但其它两种迭代器需要。