Heim >Backend-Entwicklung >C++ >Wie kann Boost::adaptors::reverse umgekehrte bereichsbasierte For-Schleifen in C 11 aktivieren?
C 11 Reverse Range-Based For-Loop mit Boost
Das Durchlaufen von Containern in umgekehrter Reihenfolge kann mithilfe eines speziellen Containeradapters erreicht werden kehrt die Richtung von Iteratoren um. Dies ermöglicht uns die Implementierung einer umgekehrten Iteration mit dem Komfort bereichsbasierter For-Schleifen.
Glücklicherweise bietet Boost einen solchen Adapter: boost::adaptors::reverse. Dieser Adapter nimmt einen Container als Eingabe und gibt einen neuen Containeradapter mit umgekehrten Iteratoren zurück.
Um seine Verwendung zu demonstrieren, betrachten Sie das folgende Beispiel:
#include <list> #include <iostream> #include <boost/range/adaptor/reversed.hpp> int main() { std::list<int> x = {2, 3, 5, 7, 11, 13, 17, 19}; for (auto i : boost::adaptors::reverse(x)) std::cout << i << '\n'; for (auto i : x) std::cout << i << '\n'; }
Dieser Code erstellt zunächst eine Liste x von ganze Zahlen. Anschließend wird die Liste in umgekehrter Reihenfolge mit dem Adapter boost::adaptors::reverse(x) durchlaufen. Es druckt die Elemente in umgekehrter Reihenfolge, gefolgt von der ursprünglichen Reihenfolge zum Vergleich.
Die Ausgabe des Programms ist:
19 17 13 11 7 5 3 2 2 3 5 7 11 13 17 19
Dies demonstriert die Leistungsfähigkeit der Boost boost::adaptors: :reverse-Adapter, um die Richtung von Iteratoren umzukehren und eine bequeme umgekehrte Iteration mit bereichsbasierten For-Schleifen in C zu ermöglichen.
Das obige ist der detaillierte Inhalt vonWie kann Boost::adaptors::reverse umgekehrte bereichsbasierte For-Schleifen in C 11 aktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!