s.begin() + s.length() + 1; // ist dieser Iterator benutzbar?



  • Ist ein Iterator noch benutzbar, wenn ich zu begin() noch einen Wert größer als die eigentliche Container-Größe hinzurechne?

    Beispiel:

    std::string s = "Hallo";
    std::string::const_iterator pos = s.begin() + s.length() + 1;
    

    Ich denke mal nicht, denn er ist nicht s.end(), aber trotzdem wollte ich nochmal nachfragen bevor ich ein vielleicht unnötige Überprüfung einbaue.



  • Offiziell nutzbar sind nur Iteratoren zwischen s.begin() und s.end() (letzterer nur für Iterator-Vergleiche) - alles dahinter ist nicht definiert.

    (oder kurz: nein, der Iterator ist nicht verwendbar)


Anmelden zum Antworten