Si deseamos eliminar el último elemento de un mapa , podemos usar los siguientes métodos:
- usando prev(mp.end()) : lo que hace la función prev es retroceder un paso desde el iterador dado. Entonces, usar la función prev con mp.end() devolverá un iterador que apunta al último elemento del mapa.
Implementación:#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"
;
}
Producción: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
- usando iterator–: establezca un iterador en mp.end() y luego use iterator– para llegar al último elemento en el mapa y luego elimínelo usando la función de borrado.
Implementación:#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"
;
}
Producción: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