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