Compartir a través de


copy_if

En un intervalo de elementos, copia los elementos que son true para la condición especificada.

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

Parámetros

  • _First
    Un iterador de entrada que indica el inicio de un intervalo para comprobar la condición.

  • _Last
    Un iterador de entrada que indica el final del intervalo.

  • _Dest
    El iterador de la salida que indica el destino de los elementos copiados.

  • _Pred
    La condición en la que cada elemento del intervalo se prueba.Esta condición es proporcionada por un objeto definido por el usuario de la función de predicado.un predicado toma un argumento y devuelve true o false.

Valor devuelto

Un iterador de salida que equivale a _Dest incrementó una vez para cada elemento que cumpla la condición.Es decir el valor devuelto menos _Dest es igual al número de elementos copiados.

Comentarios

La función de plantilla evalúa

if (_Pred(*_First + N))

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

una vez para cada N en el intervalo [0,_Last - _First), para estrictamente aumentar los valores de N que comienzan con el valor más bajo.Si _Dest y áreas designadas de _First de almacenamiento, _Dest no deben estar en el intervalo [_First,_Last).

Requisitos

encabezado: <algoritmo>

espacio de nombres: std

Vea también

Referencia

Biblioteca de plantillas estándar