multimap::erase() en C++ STL

    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.

  1. 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
    
  2. 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
    
  3. 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
    

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 *