Heim >Backend-Entwicklung >C++ >Können bereichsbasierte C 11-For-Schleifen in umgekehrter Reihenfolge iterieren?
Umgekehrte bereichsbasierte Iteration mit C 11
Frage:
Gibt es einen Weg die Richtung von Iteratoren für eine bereichsbasierte for-Schleife umkehren? Derzeit ist die Transformation einer Standard-For-Schleife mit expliziten Iteratoren mithilfe von rbegin() und rend() möglich, es wäre jedoch vorteilhaft, eine analoge Syntax für die bereichsbasierte Version zu haben.
Antwort:
Anstatt einen benutzerdefinierten Adapter zu erstellen, bietet Boost mit boost::adaptors::reverse eine praktische Lösung. Dieser Adapter kehrt die Reihenfolge der Elemente während der Iteration um.
Verwendungsbeispiel:
#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'; }
Das obige ist der detaillierte Inhalt vonKönnen bereichsbasierte C 11-For-Schleifen in umgekehrter Reihenfolge iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!