función map erase() en C++ STL

map::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:
map_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 del mapa. 

Valor devuelto: la función devuelve 1 si el elemento clave se encuentra en el mapa; de lo contrario, devuelve 0. 

El siguiente programa ilustra la sintaxis anterior: 

C++

// C++ program to illustrate
// map::erase(key)
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize container
    map<int, int> mp;
 
    // insert elements in random order
    mp.insert({ 2, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 3, 60 });
    mp.insert({ 5, 50 });
 
    // prints the elements
    cout << "The map 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 map after applying erase() is : \n";
    cout << "KEY\tELEMENT\n";
    for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}
Producción: 

The map before using erase() is : 
KEY    ELEMENT
1    40
2    30
3    60
5    50

The map after applying erase() is : 
KEY    ELEMENT
3    60
5    50



 

  • Sintaxis para eliminar una posición: 
map_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 siguiente programa ilustra la sintaxis anterior: 

C++

// C++ program to illustrate
// map::erase(iteratorposition)
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize container
    map<int, int> mp;
    // insert elements in random order
    mp.insert({ 2, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 3, 60 });
    mp.insert({ 5, 50 });
 
    // prints the elements
    cout << "The map 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 map after applying erase() is : \n";
    cout << "KEY\tELEMENT\n";
    for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}
Producción: 

The map before using erase() is : 
KEY    ELEMENT
1    40
2    30
3    60
5    50

The map after applying erase() is : 
KEY    ELEMENT
1    40
3    60



 

  • Sintaxis para borrar un rango dado: 
map_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 siguiente programa ilustra la sintaxis anterior: 

C++

// C++ program to illustrate
// map::erase(iteratorposition1, iteratorposition2)
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize container
    map<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 map 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 map after applying erase() is : \n";
    cout << "KEY\tELEMENT\n";
    for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}
Producción: 

The map before using erase() is : 
KEY    ELEMENT
1    40
2    30
3    60
5    50

The map after applying erase() is : 
KEY    ELEMENT
1    40
5    50



 

Publicación traducida automáticamente

Artículo escrito por gopaldave y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *