Ist das ein singulärer Iterator und wenn ja, kann ich ihn mit einem anderen vergleichen?

Ich habe immer gedacht, dass ein "singulärer" Iterator ein Iterator ist, der standardmäßig initialisiert wurde, und dieser kann als vergleichbar dienenWächter Werte der Art:

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;
   }
}

Aberdiese Antwort legt nicht nur nahe, dass meine Definition von "Singular" falsch ist, sondern auch, dass mein Vergleich oben völlig illegal ist.

Ist es?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage