Bei assoziativen Containern kann der ++ Operator einen Iterator nach dem Ende einer Sammlung senden?Kann ein STL-Map-Iterator durch Inkrementieren von?
Beispiel:
map<UINT32, UINT32> new_map;
new_map[0] = 0;
new_map[1] = 1;
map<UINT32, UINT32> new_iter = new_map.begin();
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
Am Ende dieser, nicht new_iter == new_map.end(), oder ist es in dem großen Unbekannten am Ende?
Hinweis: Ich weiß, das ist durcheinander und nicht die Art und Weise, Dinge zu tun. Ich arbeite an einem WTF-Unternehmenscode.
Also haben Sie es kompiliert und überprüft, ob es am Ende neue_map.end() sein wird? Wahrscheinlich der einfachste Weg, eine Frage wie diese zu beantworten, wenn Sie sich nicht sicher sind. – Goz
@Goz: Nein, das würde nur antworten, was eine Implementierung tut. – sbi
Mögliches Duplikat von [Was passiert, wenn Sie einen Iterator inkrementieren, der dem Enditerator eines STL-Containers entspricht] (https://stackoverflow.com/questions/1057724/what-happens-if-you-increment-an-iterator -that-ist-gleich-zum-Ende-iterator-of-a) – Raedwald