Heim >Backend-Entwicklung >C++ >Wie kann ich die Iteration durch einen Container mit C 11-bereichsbasierten For-Schleifen einfach umkehren?
C 11 Bereichsbasierte For-Schleifen umkehren
Das Durchlaufen eines Containers in umgekehrter Reihenfolge mit einer bereichsbasierten For-Schleife erfordert die Umkehrung Richtung von Iteratoren. Während explizite Iteratoren eine unkomplizierte Lösung bieten, gibt es einen praktischen Container-Adapter, der diese Funktionalität bietet?
Reverse-Iterator-Adapter
Glücklicherweise enthält die Boost-Bibliothek eine Lösung: Boost ::Adapter::umgekehrt. Dieser Adapter kehrt die Iterationsreihenfolge eines Containers um und ermöglicht so die umgekehrte Iteration bereichsbasierter For-Schleifen.
Beispielverwendung
Betrachten Sie einen Container mit ganzen Zahlen:
std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 };</int>
Um diesen Container in umgekehrter Reihenfolge mit einer bereichsbasierten for-Schleife zu durchlaufen, verwenden Sie die Umkehrung Adapter:
for (auto i : boost::adaptors::reverse(x)) std::cout <p>Dadurch werden die Elemente der Liste in umgekehrter Reihenfolge gedruckt.</p><p><strong>Vergleich mit der Originaliteration</strong></p><p>Zum Vergleich hier die ursprüngliche Iterationsreihenfolge ohne den umgekehrten Adapter:</p><pre class="brush:php;toolbar:false">for (auto i : x) std::cout <p>Dadurch werden die Elemente der Liste im Original gedruckt Reihenfolge.</p><p><strong>Fazit</strong></p><p>Der Reverse-Adapter von Boost bietet eine bequeme Möglichkeit, mithilfe bereichsbasierter For-Schleifen über einen Container in umgekehrter Reihenfolge zu iterieren. Dies vereinfacht den Code und ermöglicht eine präzisere und effizientere umgekehrte Iteration.</p>
Das obige ist der detaillierte Inhalt vonWie kann ich die Iteration durch einen Container mit C 11-bereichsbasierten For-Schleifen einfach umkehren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!