std::experimental::ranges:: for_each
|
Definiert in Header
<experimental/ranges/algorithm>
|
||
|
template
<
InputIterator I, Sentinel
<
I
>
S,
class
Proj
=
ranges::
identity
,
IndirectUnaryInvocable
<
projected
<
I, Proj
>>
Fun
>
|
(1) | (ranges TS) |
|
template
<
InputRange R,
class
Proj
=
ranges::
identity
,
IndirectUnaryInvocable
<
projected
<
ranges::
iterator_t
<
R
>
, Proj
>>
Fun
>
|
(2) | (ranges TS) |
[
first
,
last
)
auf (d.h.
ranges::
invoke
(
f,
ranges::
invoke
(
proj,
*
i
)
)
), in Reihenfolge.
Für beide Überladungen gilt: Wenn der Iteratortyp veränderbar ist, f kann die Elemente des Bereichs durch den dereferenzierten Iterator modifizieren. Wenn f ein Ergebnis zurückgibt, wird das Ergebnis ignoriert.
Im Gegensatz zu den restlichen Algorithmen ist es for_each nicht gestattet, Kopien der Elemente in der Sequenz zu erstellen, selbst wenn sie trivial kopierbar sind.
Im Gegensatz zu
std::for_each
(welches nur
MoveConstructible
erfordert), benötigen diese Funktionen, dass
Fun
das Konzept
CopyConstructible
modelliert.
Ungeachtet der oben dargestellten Deklarationen sind die tatsächliche Anzahl und Reihenfolge der Template-Parameter für Algorithmusdeklarationen nicht spezifiziert. Daher ist das Programm wahrscheinlich nicht portabel, wenn explizite Template-Argumente beim Aufruf eines Algorithmus verwendet werden.
InhaltsverzeichnisParameter
Rückgabewert
Ein
KomplexitätGenau last - first Anwendungen von f und proj . Mögliche Implementierung
Beispiel
Siehe auch
|