- multimap::erase() es una función integrada en C++ STL que se usa para borrar elementos del contenedor. Se puede usar para borrar claves, elementos en cualquier posición específica o en un rango determinado.
- Sintaxis para borrar una clave:
multimap_name.erase(key)
Parámetros: la función acepta una clave de parámetro obligatoria que especifica la clave que se borrará en el contenedor multimapa.
Valor devuelto: la función no devuelve nada. Borra todos los elementos con la clave especificada.
// C++ program to illustrate
// multimap::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;
}
Producción: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
- Sintaxis para eliminar una posición:
multimap_name.erase(iterator position)
Parámetros: La función acepta una posición de parámetro obligatoria que especifica el iterador que es la referencia a la posición del elemento que se va a borrar.
Valor devuelto: la función no devuelve nada.
El programa a continuación ilustra la sintaxis anterior:
// C++ program to illustrate
// multimap::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;
}
Producción: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
- Sintaxis para borrar un rango dado:
multimap_name.erase(iterator position1, iterator position2)
Parámetros: La función acepta dos parámetros obligatorios que se describen a continuación:
- position1: especifica el iterador que es la referencia al elemento del que se va a realizar la eliminación.
- position2: especifica el iterador que es la referencia al elemento hasta el cual se debe realizar la eliminación.
Valor devuelto: la función no devuelve nada. Elimina todos los elementos en el rango dado de iteradores.
El programa a continuación ilustra la sintaxis anterior:
// C++ program to illustrate
// multimap::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;
}
Producción: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