Sehr einfach: Ich habe den folgenden Code und die Methode erase
funktioniert nicht. Ich sehe kein Problem da, weil, wenn ich http://www.cplusplus.com/reference/list/list/erase/ gehen, Syntax: iterator erase (iterator position);
C++ Löschen aus der Liste der Paare
list<pair<string,int>> l0 { { "name1", 20 }, { "name2", 30 }, { "name3", 40 } };
for(auto &it : l0)
l0 . erase(it);
kann ein Problem sein, dass es ein list
von pair<string,int>
ist und kein list
eines grundlegenden Datentypen?
EDIT: Das Problem ist, dass der Code nicht kompilierbar ist.
Hinweis: ' Es wird geändert durch 'Erase()'. –
Neben dem Löschen einer Iteratorposition wird dieser Iterator (oder alle Iteratoren) ungültig, der Code sollte nicht kompiliert werden. –
@ DieterLücking Genau, es wird nicht kompilieren. Übrigens half mir der erste Kommentar nicht. Können Sie mir bitte einen weiteren Hinweis geben? – scarface