Как сделать std::vector из другого вектора с определенным фильтром?

У меня есть std::vector, заполненный объектами. Я хочу фильтровать и копировать все элементы, для которых какой-то предикат возвращает true в новый std::vector.

Я просмотрел функции find и search, но они возвращают только итераторы.

Я использую ObjС++, поэтому я могу использовать функции блока, а также функторы, если это помогает. Невозможно использовать функции С++ 11.

Ответы

Ответ 1

Если у вас есть С++ 11, используйте std::copy_if, как предложено в ответе Евгения. В противном случае вы можете использовать std:: remove_copy_if с соответствующими изменениями в вашей предикатской логике.

Ответ 2

вы можете использовать метод std:: copy_if. См. здесь.