Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann ich Reverse-Iteratoren verwenden, um Elemente aus einer Liste in C zu löschen?

DDD
Freigeben: 2024-11-20 01:55:01
Original
576 Leute haben es durchsucht

How Can I Use Reverse Iterators to Erase Elements from a List in C  ?

Elemente mit Reverse-Iteratoren löschen

Im Bereich der Iteratoren erfordert die Löschfunktion einen Iterator, was Sie bei der Arbeit mit Reverse-Iteratoren in Schwierigkeiten bringt. Wie können Sie diese Herausforderung meistern und mithilfe von Reverse-Iteratoren Elemente aus einer Liste entfernen?

Gemäß dem C-Standard entspricht die Basis eines Reverse-Iterators, i.base(), dem Element vor dem Element, auf das gezeigt wird durch den umgekehrten Iterator, d. h. &*(reverse_iterator(i)) == &*(i - 1).

Daher wird zum Entfernen eines Elements eine Umkehrung verwendet Iterator müssen Sie den Offset des Basisiterators anpassen. Dies kann mit folgender Lösung erreicht werden:

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

Alternativ bietet C 11 zwei zusätzliche Möglichkeiten:

1. Unveränderter Reverse Iterator:

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

2. Erweiterter Reverse-Iterator:

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

Wählen Sie die Lösung, die Ihren Anforderungen am besten entspricht, damit Sie mühelos Elemente aus einer Liste löschen und gleichzeitig den Komfort von Reverse-Iteratoren nutzen können.

Das obige ist der detaillierte Inhalt vonWie kann ich Reverse-Iteratoren verwenden, um Elemente aus einer Liste in C zu löschen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage