howto:equispaced_values
Inhaltsverzeichnis
Gleichabständige Werte im Intervall [a,b] erzeugen
Aufgabe
Erzeuge in einer Schleife n+1 Werte $x_i$ im Intervall $[a,b]$ eines nichtganzzahligen Grundbereichs D.
handgeschrieben
auto dx = (b-a)/n; for (int i = 0; i <= n; ++i) { auto x = a + i * dx; // ... }
range-based for
mit Headerdatei loop.h:
#include "loop.h" // ... for (auto x : loop::linspace(a, b, n)) { // ... }
mit Bibliothek cppitertools:
#include "cppitertools/itertools.hpp" // ... auto dx = (b-a)/n; for (auto x : iter::range(a, b + dx/2, dx)) { /* ... */ } { // ... }
mit Boost-Bibliothek:
#include <boost/range/irange.hpp> #include <boost/range/adaptors.hpp> // ... for (auto x : boost::irange(0, n + 1) | boost::adaptors::transformed([a, dx = (b-a)/n](int i) { return a + i*dx; })) { // ... }
howto/equispaced_values.txt · Zuletzt geändert: 2015-06-28 16:55 von 127.0.0.1