Heim > Backend-Entwicklung > C++ > Wie lösche ich Elemente aus einer Liste mithilfe von Reverse-Iteratoren in C?

Wie lösche ich Elemente aus einer Liste mithilfe von Reverse-Iteratoren in C?

Barbara Streisand
Freigeben: 2024-11-30 06:16:10
Original
543 Leute haben es durchsucht

How to Erase Elements from a List Using Reverse Iterators in C  ?

Konvertieren eines umgekehrten Iterators zum Löschen aus einer Liste

Um ein Element aus einer Liste mithilfe einer Löschoperation zu löschen, sind reguläre Iteratoren erforderlich. Bei Verwendung von Reverse-Iteratoren ist jedoch eine Konvertierung erforderlich.

Der Standard definiert eine Beziehung zwischen einem Reverse-Iterator (i) und seinem entsprechenden regulären Iterator (i.base()):

& *reverse_iterator(i) == &*(i - 1)

Diese Beziehung ermöglicht die Konvertierung eines Reverse-Iterators in einen regulären Iterator durch Anwenden eines Offsets zu i.base(). Um ein Element mithilfe eines umgekehrten Iterators zu löschen, kann daher der folgende Code verwendet werden:

m_CursorStack.erase(--(i.base()));
Nach dem Login kopieren

In C 11 und höher stehen zwei zusätzliche Optionen zum Löschen von Elementen mit umgekehrten Iteratoren zur Verfügung:

1. Unveränderter Reverse Iterator

m_CursorStack.erase(std::next(i).base());
Nach dem Login kopieren

2. Advanced Reverse Iterator

std::advance(i, 1);
m_CursorStack.erase(i.base());
Nach dem Login kopieren

Diese Alternativen bieten klarere und prägnantere Lösungen im Vergleich zum ursprünglichen Ansatz.

Das obige ist der detaillierte Inhalt vonWie lösche ich Elemente aus einer Liste mithilfe von Reverse-Iteratoren in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage