Este artículo trata sobre la parte de eliminación de Maps.
- Usando erase() : erase() se usa para borrar el par en el mapa mencionado en el argumento, ya sea su posición, su valor o un rango de números.
- erase(key) : Borra el par clave-valor usando la clave mencionada en su argumento. reordena el mapa después de la eliminación. Devuelve el número de entradas eliminadas. Si se eliminan claves que no existen, se devuelve 0.
Complejidad de tiempo: log(n) (n es el tamaño del mapa) - erase(iter) : Borra el par en la posición señalada por el iterador mencionado en su argumento.
Complejidad de tiempo: log(n) (n es el tamaño del mapa) - erase(strt_iter, end_iter) : Borra el rango de pares desde “strt_iter” hasta “end_iter”.
Complejidad de tiempo: O(k) (k es el tamaño del mapa)
// C++ code to demonstrate the working of erase()
#include<iostream>
#include<map> // for map operations
using
namespace
std;
int
main()
{
// declaring map
// of char and int
map<
char
,
int
> mp;
// declaring iterators
map<
char
,
int
>::iterator it ;
map<
char
,
int
>::iterator it1;
map<
char
,
int
>::iterator it2;
// inserting values
mp[
'a'
]=5;
mp[
'b'
]=10;
mp[
'c'
]=15;
mp[
'd'
]=20;
mp[
'e'
]=30;
// printing initial map elements
cout <<
"The initial map elements are : \n"
;
for
(it1 = mp.begin(); it1!=mp.end(); ++it1)
cout << it1->first <<
"->"
<< it1->second << endl;
it = mp.begin();
cout << endl;
// erasing element using iterator
// erases 2nd element
// 'b'
++it;
mp.erase(it);
// printing map elements after deletion
cout <<
"The map elements after 1st deletion are : \n"
;
for
(it1 = mp.begin(); it1!=mp.end(); ++it1)
cout << it1->first <<
"->"
<< it1->second << endl;
cout << endl;
// erasing element using value
int
c = mp.erase(
'c'
);
// printing map elements after deletion
cout <<
"The map elements after 2nd deletion are : \n"
;
for
(it1 = mp.begin(); it1!=mp.end(); ++it1)
cout << it1->first <<
"->"
<< it1->second << endl;
cout <<
"The number of elements deleted in 2nd deletion are : "
;
cout << c << endl;
cout << endl;
// erasing element using value
// key not present
int
d = mp.erase(
'w'
);
// printing map elements after deletion
cout <<
"The map elements after 3rd deletion are : \n"
;
for
(it1 = mp.begin(); it1!=mp.end(); ++it1)
cout << it1->first <<
"->"
<< it1->second << endl;
cout <<
"The number of elements deleted in 3rd deletion are : "
;
cout << d << endl;
cout << endl;
++it;
++it;
// erasing element using range iterator
// deletes "d" and "e" keys
mp.erase(it, mp.end());
// printing map elements 4th deletion
cout <<
"The map elements after 4th deletion are : \n"
;
for
(it1 = mp.begin(); it1!=mp.end(); ++it1)
cout << it1->first <<
"->"
<< it1->second << endl;
cout << endl;
}
Producción:
The initial map elements are : a->5 b->10 c->15 d->20 e->30 The map elements after 1st deletion are : a->5 c->15 d->20 e->30 The map elements after 2nd deletion are : a->5 d->20 e->30 The number of elements deleted in 2nd deletion are : 1 The map elements after 3rd deletion are : a->5 d->20 e->30 The number of elements deleted in 3rd deletion are : 0 The map elements after 4th deletion are : a->5
- erase(key) : Borra el par clave-valor usando la clave mencionada en su argumento. reordena el mapa después de la eliminación. Devuelve el número de entradas eliminadas. Si se eliminan claves que no existen, se devuelve 0.
- Usando clear() : Esta función borra todos los elementos presentes en el mapa. Después de llamar a esta función, el tamaño del mapa se convierte en 0.
// C++ code to demonstrate the working of clear()
#include<iostream>
#include<map> // for map operations
using
namespace
std;
int
main()
{
// declaring map
// of char and int
map<
char
,
int
> mp;
// declaring iterator
map<
char
,
int
>::iterator it ;
// inserting values
mp[
'a'
]=5;
mp[
'b'
]=10;
mp[
'c'
]=15;
mp[
'd'
]=20;
mp[
'e'
]=30;
// printing initial map elements
cout <<
"The initial map elements are : \n"
;
for
(it1 = mp.begin(); it1!=mp.end(); ++it1)
cout << it1->first <<
"->"
<< it1->second << endl;
// using clear() to erase all elements in map
mp.clear();
// printing map elements after deletion
cout <<
"The map elements after clearing all elements are : \n"
;
for
(it1 = mp.begin(); it1!=mp.end(); ++it1)
cout << it1->first <<
"->"
<< it1->second << endl;
}
Producción:
The initial map elements are : a->5 b->10 c->15 d->20 e->30 The map elements after clearing all elements are :
Este artículo es una contribución de Manjeet Singh . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA