Dies ist eine Frage über Terminologie oder Konzepte (nicht C++ - Konzepte).Welcher Ausdruck kann für eine Funktion verwendet werden, die auf jedes Element einer Sequenz angewendet wird, obwohl der Index bekannt ist?
Wenn ich schreibe
std::for_each(my_start, my_end, f);
Sie würden sagen, dass ich die Funktion angewendet wird, oder Funktors oder Funktionsobjekt f
auf jedes Element im Bereich; und f Unterschrift ist entweder
void f(const decltype(*my_start)& x);
oder es hat einen Operator
void operator()(const decltype(*my_start)& x);
Nun nehme ich das gleiche tun, aber die Funktion bekommt nicht nur einen Verweis auf das Element des Bereichs, sondern auch seinen Index: Für * my_start es 0 bekommt, dann 1 usw. Nun sind die Unterschriften sind
void f(size_t i, const decltype(*my_start)& x);
void operator()(size_t i, const decltype(*my_start)& x);
(wenn Sie nicht size_t
dann so tun, mögen int
es ist).
Also, die Frage ist: Gibt es einen Begriff für diese Art von Funktoren/Funktionen? Oder für diesen Vorgang, ein solches Funktions-/Funktorfunktionsobjekt auf eine Reihe von Elementen anzuwenden?
aufzählen? Vergleichen Sie mit der Funktion von Python [enumerate] (https://docs.python.org/2/library/functions.html#enumerate), die '(idx, element)' für jedes Element der ursprünglichen Sequenz liefert. – Andrew