Freigeben über


copy_if

In einem Bereich von Elementen, die Kopien Elemente, die true für die angegebene Bedingung sind.

template<class InputIterator, class OutputIterator, class BinaryPredicate>
   OutputIterator copy_if(
      InputIterator _First, 
      InputIterator _Last,
      OutputIterator _Dest,
      Predicate _Pred
    );

Parameter

  • _First
    Ein Eingabeiterator, der den Anfang eines Bereichs angibt, auf den Zustand zu überprüfen.

  • _Last
    Ein Eingabeiterator, der das Ende des Bereichs angibt.

  • _Dest
    Der Ausgabeiterator, der das Ziel der kopierten Elemente angibt.

  • _Pred
    Die Bedingung, für die einzelnen Elemente im Bereich getestet wird. Diese Bedingung wird von einem benutzerdefinierten Prädikatfunktionsobjekt bereitgestellt. Ein Prädikat akzeptiert ein Argument und gibt true oder false zurück.

Rückgabewert

Ein Ausgabeiterator, der _Dest entspricht, inkrementierte einmal für jedes Element, das die Bedingung erfüllt. Das heißt, entspricht der Rückgabewert minus _Dest der Anzahl der kopierten Elemente.

Hinweise

Die Vorlagenfunktion Evaluate

if (_Pred(*_First + N))

*_Dest++ = *(_First + N))

einmal für jedes N im Bereich [0, _Last - _First) bei strikt ansteigenden Werten von N, beginnend mit dem niedrigsten Wert. Wenn mit _Dest und _First Bereiche des Speichers bestimmt werden, darf _Dest nicht im Bereich [_First, _Last) liegen.

Anforderungen

Header: <algorithm>

Namespace: std

Siehe auch

Referenz

Standardvorlagenbibliothek