namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:transform

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 namens in, out bzw.
  • {first1+N,first2+N,result+N} als Struktur mit Elementen namens in1, 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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki