multimap::erase() in C++ STL

    multimap::erase() is a built-in function in C++ STL which is used to erase element from the container. It can be used to erase keys, elements at any specified position or a given range.

  1. Syntax for erasing a key:
    multimap_name.erase(key)
    

    Parameters: The function accepts one mandatory parameter key which specifies the key to be erased in the multimap container.

    Return Value: The function does not return anything. It erases all the elements with the specified key.



    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ program to illustrate
    // multiset::erase(key)
    #include <bits/stdc++.h>
    using namespace std;
      
    int main()
    {
      
        // initialize container
        multimap<int, int> mp;
      
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
        mp.insert({ 3, 60 });
        mp.insert({ 2, 20 });
        mp.insert({ 5, 50 });
      
        // prints the elements
        cout << "The multimap before using erase() is : \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
      
        // function to erase given keys
        mp.erase(1);
        mp.erase(2);
      
        // prints the elements
        cout << "\nThe multimap after applying erase() is : \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.crbegin(); itr != mp.crend(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }

    chevron_right

    
    

    Output:

    The multimap before using erase() is : 
    KEY    ELEMENT
    1    40
    2    30
    2    20
    3    60
    5    50
    
    The multimap after applying erase() is : 
    KEY    ELEMENT
    5    50
    3    60
    
  2. Syntax for removing a position:
    multimap_name.erase(iterator position)
    

    Parameters: The function accept one mandatory parameter position which specifies the iterator that is the reference to the position of the element to be erased.

    Return Value: The function does not returns anything.

    Program below illustrate the above syntax:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ program to illustrate
    // multiset::erase(position)
    #include <bits/stdc++.h>
    using namespace std;
      
    int main()
    {
      
        // initialize container
        multimap<int, int> mp;
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
        mp.insert({ 3, 60 });
        mp.insert({ 2, 20 });
        mp.insert({ 5, 50 });
      
        // prints the elements
        cout << "The multimap before using erase() is : \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
      
        // function to erase given position
        auto it = mp.find(2);
        mp.erase(it);
      
        auto it1 = mp.find(5);
        mp.erase(it1);
      
        // prints the elements
        cout << "\nThe multimap after applying erase() is : \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.crbegin(); itr != mp.crend(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }

    chevron_right

    
    

    Output:

    The multimap before using erase() is : 
    KEY    ELEMENT
    1    40
    2    30
    2    20
    3    60
    5    50
    
    The multimap after applying erase() is : 
    KEY    ELEMENT
    3    60
    2    20
    1    40
    
  3. Syntax for erasing a given range:
    multimap_name.erase(iterator position1, iterator position2)
    

    Parameters: The function accepts two mandatory parameters which are described below:

    • position1 – specifies the iterator that is the reference to the element from which removal is to be done.
    • position2 – specifies the iterator that is the reference to the element upto which removal is to be done.

    Return Value: The function does not returns anything. It removes all the elements in the given range of iterators.

    Program below illustrate the above syntax:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ program to illustrate
    // multiset::erase()
    #include <bits/stdc++.h>
    using namespace std;
      
    int main()
    {
      
        // initialize container
        multimap<int, int> mp;
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
        mp.insert({ 3, 60 });
        mp.insert({ 2, 20 });
        mp.insert({ 5, 50 });
      
        // prints the elements
        cout << "The multimap before using erase() is : \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
      
        // function to erase in a given range
        // find() returns the iterator reference to
        // the position where the element is
        auto it1 = mp.find(2);
        auto it2 = mp.find(5);
        mp.erase(it1, it2);
      
        // prints the elements
        cout << "\nThe multimap after applying erase() is : \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.crbegin(); itr != mp.crend(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }

    chevron_right

    
    

    Output:

    The multimap before using erase() is : 
    KEY    ELEMENT
    1    40
    2    30
    2    20
    3    60
    5    50
    
    The multimap after applying erase() is : 
    KEY    ELEMENT
    5    50
    1    40
    


My Personal Notes arrow_drop_up

The function of education is to teach one to think intensively and to think critically

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.