Heim >Backend-Entwicklung >C++ >Wie entferne ich Elemente während der Iteration sicher aus einer C-Map?
Elemente aus einer Karte während der Iteration in C entfernen
Wenn Sie eine Karte durchlaufen und versuchen, Elemente basierend auf bestimmten Bedingungen zu entfernen, ist dies der Fall Es ist wichtig, die Auswirkungen des Löschens von Elementen auf den Iterator zu berücksichtigen. Durch das Löschen eines Elements während der Iteration über die Karte wird der Iterator ungültig, was die Fortsetzung des Iterationsprozesses erschwert.
Standard-Löschsprache für assoziative Container
Die Standardsprache für Das Löschen aus einem assoziativen Container (z. B. einer Karte) während der Iteration erfolgt wie folgt folgt:
for (auto it = m.cbegin(); it != m.cend() /* not hoisted */; /* no increment */) { if (must_delete) { m.erase(it++); // or "it = m.erase(it)" since C++11 } else { ++it; } }
Erklärung
Wenn Sie dieser Redewendung folgen, können Sie Elemente währenddessen sicher aus der Karte entfernen Iterieren, ohne die Iteratoren ungültig zu machen.
Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente während der Iteration sicher aus einer C-Map?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!