Como fazer std :: vector de outro vetor com filtro específico?

eu tenho umstd::vector preenchido com objetos. Eu quero filtrar e copiar todos os elementos para os quais alguns retornos de predicadotrue para um novostd::vector.

Eu olhei parafind esearch funções, mas eles só retornam iteradores.

estou a usarObjC ++ então eu posso usar funções de bloco, assim como functores, se isso ajudar. Não é possível usar as funções do C ++ 11.