namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:include:generator

<generator>

std::generator<T> ist der Rückgabetyp einer Koroutine, die mit dem Ausdruck co_yield ausdruck, einen Wert liefert und dann bis zur Anforderung des nächsten Wertes pausiert. Der Generator stellt eine Sicht auf die Elemente der erzeugten Folge dar.

pythagorean
#include <generator>
#include <print>
#include <tuple>
 
using Triple = std::tuple<int,int,int>;
 
std::generator<Triple> pythagorean()
{
  for (int c = 1; c < 20; ++c)
    for (int b = 1; b < c; ++b)
      for (int a = 1; a < b; ++a)
        if (a*a + b*b == c*c)
          co_yield {a,b,c};
}
 
int main()
{
  for (auto [a,b,c] : pythagorean())
  {
    std::println("{}²+{}²={}²", a,b,c);
  }
}
kennen/include/generator.txt · Zuletzt geändert: 2024-11-01 10:19 von rrichter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki