kennen:lib:transform
Inhaltsverzeichnis
transform()
#include
<algorithm>
Out transform (In first, In last, Out result, Func func) Out transform (In first, In last, In first2, Out result, Binary func) Out transform (Exec pol, In first, In last, Out result, Func func) Out transform (Exec pol, In first, In last, In first2, Out result, Binary func) [end,res] = ranges::transform (Range r, Out result, Func func, Proj proj = {}) [end,res] = ranges::transform (In first, In last, Out result, Func func, Proj proj = {}) [end1,end2,res] = ranges::transform (Range1 r1, Range2 r2, Out result, Binary func, Proj1 proj1 = {}, Proj2 proj2 = {}) [end1,end2,res] = ranges::transform (In first, In last, In2 first2, In2 last2, Out result, Binary func, Proj1 proj1 = {}, Proj2 proj2 = {})
Errechnet aus den Elementen x
des Bereiches [first,last) und Elementen y
des Bereiches [first2, last2)
eine Folge von Werten func(proj(x))
bzw.
func(proj1(x), proj2(y))
und legt diese im Bereich [result,…) ab.
Parameter
first | Anfang des Quellbereiches |
last | Ende des Quellbereiches |
first2 | Anfang des zweiten Quellbereiches |
result | Anfang des Zielbereiches |
func | Funktion oder Funktionsobjekt |
proj , proj1 , proj2 | einstelliger Funktor (Vorgabe = std::identity ) |
pol | parallele Ausführungsart |
Ergebnis
Rückgabewert:
- Iterator
result+N
auf das Ende des Zielbereichs bzw. - von Quellbereich(en) und Zielbereich
{first+N, result+N}
als Struktur mit Elementen namensin, out
bzw. {first1+N,first2+N,result+N}
als Struktur mit Elementen namensin1, in2, out
mit N=last-first
bzw. N=min(last1-first1,last2-first2)
.
Siehe auch
Beispiel
- transform.cpp
#include <algorithm> #include <iostream> char caesar(char c) { return c+3; } char subtract(char c, char ziffer) { return c - (ziffer-'0'); } int main() { char s[] = "Hallo Welt"; const char c[] = "123123123123"; std::cout << s << '\n'; std::transform(s, s+10, s, caesar); std::cout << s << '\n'; std::transform(s, s+10, c, s, subtract); std::cout << s << '\n'; }
kennen/lib/transform.txt · Zuletzt geändert: 2023-10-14 12:10 von rrichter