bool unordered_find_and_remove(std::vector<_T>& v, const _T& val) { const typename std::vector<_T>::iterator loc = std::find(v.begin(), v.end(), val); if(loc == v.end()) return false; unordered_remove(v, loc); return true; }
void remove(const value_type & x) { c->erase(unordered_remove(c->begin(), c->end(), x), c->end()); }