The associative containers std::map, std::multimap, std::set, and std::multiset have the following three overloaded forms of the member function erase():
class map // simplified for brevity{public://..other members void erase(iterator position); // 1 size_type erase(const key_type& x); // 2 void erase(iterator first, iterator last); // 3};
The first version takes an iterator pointing at an existing container element and erases it. For example, the following code erases the last element of the container:
employees.erase(employees.rbegin());
Remember that an element of an associative container is a pair of two values: a key and its associated value. The second version of erase() enables you to erase an element using its key. For example, suppose you have created the following map object:
std::map employees;//.. fill map// erase the element whose first member equals 2employees.erase(2);
The third version of erase() deletes a sequence of elements whose bounds are indicated by the iterators first and last. For example, the following statement erases all the elements of a map:
employees.erase(employees.begin(), employees.end());
Of course, you can use the clear() member function to achieve the same effect because clear() simply calls erase(begin(), end());