Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Intermediate
Oct 17, 2000

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< int, std::string > employees;
//.. fill map
// erase the element whose first member equals 2
employees.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());

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap