Удаление по условию в C++
Функция erase_if в C++20 убирает элементы
контейнера по предикату одним вызовом.
Для std::vector это std::erase_if
из #include <vector>. Размер контейнера
уменьшается, индексы сдвигаются.
Запишем список чисел и выведем остаток
после удаления нулей:
#include <iostream>
#include <vector>
int main() {
std::vector<int> data = {1, 0, 2, 0, 3};
std::erase_if(data, [](int v) { return v == 0; });
for (int v : data) {
std::cout << v << " ";
}
std::cout << "\n";
return 0;
}
Из вектора {3, 4, 5, 6} удалите четные элементы через std::erase_if и выведите оставшиеся числа.