#include <iostream>
#include <vector>
#include <algorithm> // for std::remove_if
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
// Define the condition
// isEven: The name you're giving to the lambda, so you can call it later like a regular function
/// [](int num) { ... }: The lambda function.
auto isEven = [](int num) { return num % 2 == 0; };
// Use std::remove_if to filter in-place
auto newEnd = std::remove_if(numbers.begin(), numbers.end(), isEven);
// Resize the vector to remove the "removed" elements
numbers.erase(newEnd, numbers.end());
// Print the filtered vector
std::cout << "Filtered numbers: ";
for (int num : numbers) {
std::cout << num << " ";
}
}
/*
run:
Filtered numbers: 1 3 5 7 9 11
*/