#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
bool f(int i) {return i > 2;}
int main() {
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
vector<int>::iterator it;
it = std::remove_if( v.begin(), v.end(), f); // shift v.erase( it, v.end()); }
copy( v.begin(), it, ostream_iterator<int>(cout));
// but it will still gives us vector of size 5
copy( v.begin(), v.end(), ostream_iterator<int>(cout));
// so let's erase
v.erase( it, v.end());
copy( v.begin(), v.end(), ostream_iterator<int>(cout));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGYoaW50IGkpIHtyZXR1cm4gaSA+IDI7fQoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8aW50PiB2OwoJdi5wdXNoX2JhY2soMSk7Cgl2LnB1c2hfYmFjaygyKTsKCXYucHVzaF9iYWNrKDMpOwoJdi5wdXNoX2JhY2soNCk7Cgl2LnB1c2hfYmFjayg1KTsKCXZlY3RvcjxpbnQ+OjppdGVyYXRvciBpdDsKCWl0ID0gc3RkOjpyZW1vdmVfaWYoIHYuYmVnaW4oKSwgdi5lbmQoKSwgZik7ICAvLyBzaGlmdCB2LmVyYXNlKCBpdCwgdi5lbmQoKSk7ICB9Cgljb3B5KCB2LmJlZ2luKCksIGl0LCBvc3RyZWFtX2l0ZXJhdG9yPGludD4oY291dCkpOwoJLy8gYnV0IGl0IHdpbGwgc3RpbGwgZ2l2ZXMgdXMgdmVjdG9yIG9mIHNpemUgNQoJY29weSggdi5iZWdpbigpLCB2LmVuZCgpLCBvc3RyZWFtX2l0ZXJhdG9yPGludD4oY291dCkpOwoJLy8gc28gbGV0J3MgZXJhc2UKCXYuZXJhc2UoIGl0LCB2LmVuZCgpKTsKCWNvcHkoIHYuYmVnaW4oKSwgdi5lbmQoKSwgb3N0cmVhbV9pdGVyYXRvcjxpbnQ+KGNvdXQpKTsKCXJldHVybiAwOwp9