std::set::erase
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   void erase( iterator position ); iterator erase( const_iterator position );  | 
(1) |  (until C++11)  (since C++11)  | 
|   void erase( iterator first, iterator last ); iterator erase( const_iterator first, const_iterator last );  | 
(2) |  (until C++11)  (since C++11)  | 
|   size_type erase( const key_type& key );  | 
(3) | |
Removes specified elements from the container.
1) Removes the element at pos.
2) Removes the elements in the range [first; last).
3) Removes the elements with the key value key
References and iterators to the erased elements are invalidated. Other references and iterators are not affected.
Contents | 
[edit] Parameters
| pos | - | iterator to the element to remove | 
| first, last | - | range of elements to remove | 
| key | - | key value of the elements to remove | 
[edit] Return value
1-2) iterator following the last removed element.
3) number of elements removed
[edit] Complexity
1) Amortized constant
2) log(a.size()) + std::distance(first, last)
3) log(a.size()) + a.count(k)
[edit] See also
|    clears the contents   (public member function)  | |