Как удалить последний элемент с карты в C ++

Опубликовано: 3 Декабря, 2021

Если мы хотим удалить последний элемент с карты, мы можем использовать следующие методы:

  1. с использованием prev (mp.end ()) : что делает функция prev, она возвращается на один шаг назад от данного итератора. Таким образом, использование функции prev с mp.end () вернет итератор, который указывает последний элемент карты.
    Реализация:
    #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 : " ;
    for ( auto it = mp.begin(); it != mp.end(); it++)
    cout << it->first << " ==> "
    << it->second << " " ;
    cout << "Deleting the last element from"
    " the map. " ;
    mp.erase(prev(mp.end()));
    cout << "Contents of mp after deleting the last"
    " element : " ;
    for ( auto it = mp.begin(); it != mp.end(); it++)
    cout << it->first << " ==> "
    << it->second << " " ;
    }
    Выход:
    Содержимое mp до удаления последнего элемента:
    1 ==> 10
    2 ==> 20
    3 ==> 30
    Удаление последнего элемента с карты.
    Содержимое mp после удаления последнего элемента:
    1 ==> 10
    2 ==> 20
    
  2. using iterator– : установите итератор на mp.end (), а затем используйте итератор–, чтобы добраться до последнего элемента на карте, а затем удалите его с помощью функции стирания.
    Реализация:
    #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 : " ;
    for ( auto it = mp.begin(); it != mp.end(); it++)
    cout << it->first << " ==> "
    << it->second << " " ;
    cout << "Deleting the last element from"
    " the map. " ;
    auto it = mp.end();
    it--;
    mp.erase(it);
    cout << "Contents of mp after deleting the"
    " last element : " ;
    for ( auto it = mp.begin(); it != mp.end(); it++)
    cout << it->first << " ==> "
    << it->second << " " ;
    }
    Выход:
    Содержимое mp до удаления последнего элемента:
    1 ==> 10
    2 ==> 20
    3 ==> 30
    Удаление последнего элемента с карты.
    Содержимое mp после удаления последнего элемента:
    1 ==> 10
    2 ==> 20
    
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .