#include <iostream>
#include <algorithm>
using namespace std;
template <typename Container, typename Filter>
void filter_ip(Container& c, Filter&& f)
{
c.erase(std::remove_if(c.begin(), c.end(),
[&f](const typename Container::value_type& x) {
return !f(x);
}),
c.end());
}
int main() {
std::vector<int> stuff{1, 2, 3, 4, 5};
filter_ip(stuff, [](int i) { return i >= 3; });
for (int i : stuff) cout << i << ", ";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIENvbnRhaW5lciwgdHlwZW5hbWUgRmlsdGVyPgp2b2lkIGZpbHRlcl9pcChDb250YWluZXImIGMsIEZpbHRlciYmIGYpCnsKICBjLmVyYXNlKHN0ZDo6cmVtb3ZlX2lmKGMuYmVnaW4oKSwgYy5lbmQoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICBbJmZdKGNvbnN0IHR5cGVuYW1lIENvbnRhaW5lcjo6dmFsdWVfdHlwZSYgeCkgeyAKICAgICAgICAgICAgICAgICAgICAgICAgIAlyZXR1cm4gIWYoeCk7IAogICAgICAgICAgICAgICAgICAgICAgICAgfSksIAogICAgICAgICAgYy5lbmQoKSk7Cn0KCmludCBtYWluKCkgewoJc3RkOjp2ZWN0b3I8aW50PiBzdHVmZnsxLCAyLCAzLCA0LCA1fTsKCWZpbHRlcl9pcChzdHVmZiwgW10oaW50IGkpIHsgcmV0dXJuIGkgPj0gMzsgfSk7Cglmb3IgKGludCBpIDogc3R1ZmYpIGNvdXQgPDwgaSA8PCAiLCAiOwoJcmV0dXJuIDA7Cn0=