Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++ ошибка в 'std::copy_if'

Никита Рамилиев Знаток (370), на голосовании 1 неделю назад
всем ку! столкнулся с ошибкой при копировании массива (относится к 'std::list/deque/vector'). все они имеют как минимум Bidirectional Iterator, а значит - поддерживают Input Iterator. но в коде ниже выдает ошибку компиляции (подробнее на фото), и я не понимаю как исправить и с чем связано. код:
 std::vector<int> process(const std::vector<int>& vec) 
{
if (vec.empty()) { return { }; }
// вернуть пустой контейнер ^^^

std::vector<int> result; // копировать только неотрицательные числа vvv
std::copy_if(vec.begin(), vec.end(), result, [](int num) { return num >= 0; });
std::sort(vec.begin(), vec.end());

return result;
}
  • функция очень проста и разобратся в ней никому не составит труда
  • прошу, объясните с чем связано и расскажите как исправить - ошибку
Голосование за лучший ответ
/bin/laden Искусственный Интеллект (122002) 1 месяц назад
третий аргумент должен быть итератором
... vec.end(), std::back_inserter(result), ...
Никита РамилиевЗнаток (370) 1 месяц назад
спасибо
Похожие вопросы