Este é um iterador singular e, em caso afirmativo, posso compará-lo a outro?
Eu sempre pensei que um iterador "singular" era aquele que foi inicializado por padrão, e estes poderiam servir como comparáveissentinela valores das sortes:
typedef std::vector<Elem>::iterator I;
I start = I();
std::vector<Elem> container = foo();
for (I it = container.begin(), end = container.end(); it != end; ++it) {
if ((start == I()) && bar(it)) {
// Does something only the first time bar(it) is satisfied
// ...
start = it;
}
}
Masesta resposta sugere não apenas que minha definição de "singular" está errada, mas também que minha comparação acima é totalmente ilegal.
É isso?