#include <iostream>
#include <vector>
#include <iterator>
#include <functional>
#include <algorithm>

#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>

using namespace std;
using namespace boost::lambda;

int main() {
	vector<int> v;
	for (int i(0); i<10; ++i) {
		v.push_back(i*i);
	}
	ostream_iterator<int> out(cout, " ");
	cout<<"Na initialisatie:"<<endl;
	copy(v.begin(), v.end(), out);
	vector<int>::iterator end(remove_if(v.begin(), v.end(), !(_1%2)));
	cout<<endl<<"Na remove (tot returned iterator):"<<endl;
	copy(v.begin(), end, out);
	cout<<endl<<"Na remove (hele vector):"<<endl;
	copy(v.begin(), v.end(), out);
	v.erase(end, v.end());
	cout<<endl<<"Na erase (hele vector):"<<endl;
	copy(v.begin(), v.end(), out);
	cin.get();
	return 0;
}
