Testen Sie das Programm mit der Funktion boost::hana::any_of

Testen Sie das Programm mit der Funktion boost::hana::any_of

Wenn wir die Bibliothek boost::hana in der C++-Boost-Bibliothek verwenden, können wir die darin bereitgestellte Funktion boost::hana::any_of verwenden, um zu bestimmen, ob ein Element in der Sammlung eine bestimmte Bedingung erfüllt. Diese Funktion gibt einen booleschen Wert zurück, der angibt, ob die Sammlung mindestens ein Element enthält, das die Bedingung erfüllt.

Das Folgende ist ein spezifisches Beispielprogramm, das zeigt, wie Sie mit der Funktion boost::hana::any_of herausfinden, ob ein Element in einer Ganzzahlmenge ungerade ist.

#include <boost/hana.hpp>
#include <iostream>

namespace hana = boost::hana;

int main() {
    constexpr auto ints = hana::make_tuple(0, 2, 4, 6, 8, 10);
    std::cout << "Any odd integers in the tuple? ";
    if (hana::any_of(ints, [](auto i) { return i % 2 != 0; })) {
        std::cout << "Yes\n";
    } else {
        std::cout << "No\n";
    }
    return 0;
}

Im obigen Beispielprogramm verwenden Sie zunächst die Funktion boost::hana::make_tuple, um eine Ganzzahlmenge zu erstellen, die 6 gerade Zahlen enthält. Verwenden Sie dann die Funktion boost::hana::any_of, um die Sammlung zu durchsuchen, und übergeben Sie dabei einen Lambda-Ausdruck als Bedingung. Bestimmen Sie, ob das Element eine ungerade Zahl ist, je nachdem, ob das Ergebnis des Moduls jedes Elements im Lambda-Ausdruck gleich 0 ist.

Wenn Sie das obige Programm ausführen, wird in der Konsolenausgabe Folgendes angezeigt: „Irgendwelche ungeraden Ganzzahlen im Tupel? Nein“, was darauf hinweist, dass die Menge kein ungerades Element enthält.

Es ist sehr praktisch, die Funktion boost::hana::any_of zu verwenden, ohne Schleifen zu verwenden oder die Sammlung manuell nachzuschlagen, um festzustellen, ob es ein Element gibt, das die Bedingung erfüllt. Eine Codezeile kann es schaffen!

Supongo que te gusta

Origin blog.csdn.net/qq_37934722/article/details/132504820
Recomendado
Clasificación