#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
#include <iterator>
#include <functional>

int main() {
	const size_t N = 10;
	
	std::vector<int> a(N);
	
	std::mt19937 gen { std::random_device()() };
    std::uniform_int_distribution<> dist(-10,10);
    
    std::generate(a.begin(), a.end(), std::bind(dist,gen));

	std::cout<<"--- before ---\n";
	std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));
	
	a.erase(std::remove_if(a.begin(), a.end(), std::bind2nd(std::modulus<int>(),2)), a.end());
	
	std::cout<<"\n--- after ---\n";
	if (!a.empty())
		std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));
	else std::cout << "not found!\n";

	return 0;
}