Ответ 1
Если у вас есть С++ 11, используйте std::copy_if
, как предложено в ответе Евгения. В противном случае вы можете использовать std:: remove_copy_if с соответствующими изменениями в вашей предикатской логике.
У меня есть std::vector
, заполненный объектами. Я хочу фильтровать и копировать все элементы, для которых какой-то предикат возвращает true
в новый std::vector
.
Я просмотрел функции find
и search
, но они возвращают только итераторы.
Я использую ObjС++, поэтому я могу использовать функции блока, а также функторы, если это помогает. Невозможно использовать функции С++ 11.
Если у вас есть С++ 11, используйте std::copy_if
, как предложено в ответе Евгения. В противном случае вы можете использовать std:: remove_copy_if с соответствующими изменениями в вашей предикатской логике.
вы можете использовать метод std:: copy_if. См. здесь.