Partilhar via


copy_if

Em um intervalo de elementos, copia os elementos que são true para a condição especificada.

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

Parâmetros

  • _First
    Um iterador de entrada que indica o início de um intervalo à verificação da condição.

  • _Last
    Um iterador de entrada que indica a extremidade do intervalo.

  • _Dest
    O iterador de saída que indica o destino dos elementos copiados.

  • _Pred
    A condição em que cada elemento no intervalo é testado. Esta condição é fornecida por um objeto definido pelo usuário da função do predicado. Um predicado usa um argumento e retorna true ou false.

Valor de retorno

Um iterador de saída que igualasse _Dest incrementou uma vez para cada elemento que atenda à condição. Ou é o valor de retorno menos _Dest é igual ao número de elementos copiados.

Comentários

A função avalia do modelo

if (_Pred(*_First + N))

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

uma vez para cada N no intervalo [0, _Last - _First), para valores estritamente crescentes N iniciando pelo valor mais baixo. Se _Dest e _First designar regiões de armazenamento, _Dest não deve estar no intervalo [_First, _Last).

Requisitos

Cabeçalho: <algoritmo>

Namespace: std

Consulte também

Referência

Biblioteca de Modelos Padrão