Open In App

How to delete last element from a map in C++

Improve
Improve
Like Article
Like
Save
Share
Report

If we wish to delete the last element from a map, we can use following methods :

  1. using prev(mp.end()) : what prev function do is, it goes back one step back from the given iterator. So using prev function with mp.end() will return an iterator which points the last element of the map.
    Implementation:




    #include <bits/stdc++.h>
      
    using namespace std;
      
    int main()
    {
      
        map<int, int> mp;
      
        // Adding some elements in mp
        mp[1] = 10;
        mp[2] = 20;
        mp[3] = 30;
      
        cout << "Contents of mp before deleting"
               " the last element :\n";
        for (auto it = mp.begin(); it != mp.end(); it++)
            cout << it->first << " ==> "
                 << it->second << "\n";
      
        cout << "Deleting the last element from"
               " the map.\n";
        mp.erase(prev(mp.end()));
      
        cout << "Contents of mp after deleting the last"
                " element :\n";
        for (auto it = mp.begin(); it != mp.end(); it++)
            cout << it->first << " ==> "
                 << it->second << "\n";
    }

    
    

    Output:

    Contents of mp before deleting the last element :
    1 ==> 10
    2 ==> 20
    3 ==> 30
    Deleting the last element from the map.
    Contents of mp after deleting the last element :
    1 ==> 10
    2 ==> 20
    
  2. using iterator– : Set an iterator to mp.end() and then use iterator– to get to the last element in the map and then delete it using erase function.
    Implementation:




    #include <bits/stdc++.h>
      
    using namespace std;
      
    int main()
    {
      
        map<int, int> mp;
        // Adding some elements in mp
        mp[1] = 10;
        mp[2] = 20;
        mp[3] = 30;
      
        cout << "Contents of mp before deleting "
                "the last element :\n";
        for (auto it = mp.begin(); it != mp.end(); it++)
            cout << it->first << " ==> " 
                 << it->second << "\n";
      
        cout << "Deleting the last element from"
                " the map.\n";
        auto it = mp.end();
        it--;
        mp.erase(it);
      
        cout << "Contents of mp after deleting the"
                " last element :\n";
        for (auto it = mp.begin(); it != mp.end(); it++)
            cout << it->first << " ==> "
                 << it->second << "\n";
    }

    
    

    Output:

    Contents of mp before deleting the last element :
    1 ==> 10
    2 ==> 20
    3 ==> 30
    Deleting the last element from the map.
    Contents of mp after deleting the last element :
    1 ==> 10
    2 ==> 20
    


Last Updated : 11 Dec, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads