Замена по условию в C++
Алгоритм replace_if меняет значение
там, где унарный предикат возвращает true.
Новое значение задают отдельным аргументом.
Так удобнее, чем ручной цикл с if.
Запишем массив температур и обнулим
отрицательные через лямбду:
#include <algorithm>
#include <iostream>
int main() {
int temps[] = {5, -1, 3, -4};
std::replace_if(std::begin(temps), std::end(temps), [](int t) {
return t < 0;
}, 0);
for (int t : temps) {
std::cout << t << " ";
}
std::cout << "\n";
return 0;
}
В векторе {2, 3, 4, 5} замените четные числа на 0 алгоритмом replace_if и выведите результат.