¿Cómo hacer std :: vector desde otro vector con filtro específico?

tengo unstd::vector Lleno de objetos. Quiero filtrar y copiar todos los elementos para los que devuelve algún predicadotrue en un nuevostd::vector.

He miradofind ysearch Funciones pero solo devuelven iteradores.

Estoy usandoObjC ++ así que puedo usar funciones de bloque así como funtores, si ayuda. Aunque no puedo usar las funciones de C ++ 11.