devxlogo

The erase() Member Function of Associative Containers

The erase() Member Function of Associative Containers

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());

devx-admin

Share the Post: