22 Containers library [containers]

22.5 Unordered associative containers [unord]

22.5.6 Class template unordered_­set [unord.set]

22.5.6.3 Erasure [unord.set.erasure]

template<class K, class H, class P, class A, class Predicate> typename unordered_set<K, H, P, A>::size_type erase_if(unordered_set<K, H, P, A>& c, Predicate pred);
Effects: Equivalent to:
auto original_size = c.size();
for (auto i = c.begin(), last = c.end(); i != last; ) {
  if (pred(*i)) {
    i = c.erase(i);
  } else {
    ++i;
  }
}
return original_size - c.size();