Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Removes elements at specified positions.
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
size_type erase(const Key& keyval);
Parameters
- first 
 Beginning of range to erase.
- key 
 Key value to erase.
- last 
 End of range to erase.
- where 
 Element to erase
Remarks
The first member function removes the element of the controlled sequence pointed to by where. The second member function removes the elements in the range [first, last). Both return an iterator that designates the first element remaining beyond any elements removed, or unordered_multimap::end() if no such element exists.
The third member removes the elements in the range delimited by unordered_multimap::equal_range(keyval). It returns the number of elements it removes.
The member functions never throw an exception.
Example
// std_tr1__unordered_map__unordered_multimap_erase.cpp 
// compile with: /EHsc 
#include <unordered_map> 
#include <iostream> 
 
typedef std::unordered_multimap<char, int> Mymap; 
int main() 
    { 
    Mymap c1; 
 
    c1.insert(Mymap::value_type('a', 1)); 
    c1.insert(Mymap::value_type('b', 2)); 
    c1.insert(Mymap::value_type('c', 3)); 
 
// display contents " [c 3] [b 2] [a 1]" 
    for (Mymap::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << it->first << ", " << it->second << "]"; 
    std::cout << std::endl; 
 
// erase an element and reinspect 
    Mymap::iterator it2 = c1.erase(c1.begin()); 
    std::cout << "*erase(begin()) == [" 
        << it2->first << ", " << it2->second << "]"; 
    std::cout << std::endl; 
 
// add elements and display " [e 5] [d 4] [b 2] [a 1]" 
    c1.insert(Mymap::value_type('d', 4)); 
    c1.insert(Mymap::value_type('e', 5)); 
 
    for (Mymap::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << it->first << ", " << it->second << "]"; 
    std::cout << std::endl; 
 
// erase all but end; 
    it2 = c1.end(); 
    it2 = c1.erase(c1.begin(), --it2); 
    std::cout << "*erase(begin(), end()-1) == [" 
        << it2->first << ", " << it2->second << "]" << std::endl; 
    std::cout << "size() == " << c1.size() << std::endl; 
 
    return (0); 
    } 
 
[c, 3] [b, 2] [a, 1] *erase(begin()) == [b, 2] [e, 5] [d, 4] [b, 2] [a, 1] *erase(begin(), end()-1) == [a, 1] size() == 1
Requirements
Header: <unordered_map>
Namespace: std