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
    

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Recommended Posts:

    Article Tags :
    Practice Tags :


    1


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