Heim >Backend-Entwicklung >C++ >Wie kann Boost::adaptors::reverse umgekehrte bereichsbasierte For-Schleifen in C 11 aktivieren?

Wie kann Boost::adaptors::reverse umgekehrte bereichsbasierte For-Schleifen in C 11 aktivieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-03 03:02:10933Durchsuche

How Can Boost::adaptors::reverse Enable Reverse Range-Based For-Loops in C  11?

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!

Stellungnahme:
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