I have a `std::vector` filled with objects. I want to filter and copy all the elements for which some predicate returns `true` in to a new `std::vector`.

I've looked at `find` and `search` functions but they only return iterators.

I'm using *ObjC++* so I can use block functions as well as functors, if it helps. Can't use C++11 functions though.