borrado multiconjunto() en C++ STL

Requisito previo: conjunto múltiple

El multiset::erase() es la función STL en C++ que elimina el elemento especificado de multiset.

Hay tres versiones de este método. Estos son:

  1. Sintaxis:
    void erase (iterator position_of_iterator);
    

    Parámetros: Este método acepta los siguientes parámetros:

    • position_of_iterator: se refiere a la posición del elemento específico que se eliminará con la ayuda del iterador.

    Valor devuelto: este método devuelve el iterador que sigue al elemento eliminado.

    Los siguientes ejemplos ilustran el funcionamiento del método multiset::erase():

    // C++ program to demonstrate
    // multiset::erase() method
      
    #include <bits/stdc++.h>
    using namespace std;
      
    int main()
    {
      
        // Initialise the multiset
        multiset<int> multi_set;
        multiset<int>::iterator ms_iterator;
      
        // Add values to the multiset
        for (int i = 1; i < 10; i++) {
            multi_set.insert(i);
        }
      
        cout << "Original multiset: ";
      
        for (ms_iterator = multi_set.begin();
             ms_iterator != multi_set.end();
             ++ms_iterator)
      
            cout
                << ' ' << *ms_iterator;
        cout << '\n';
      
        ms_iterator = multi_set.begin();
        ms_iterator++;
      
        // Passing the iterator for the position
        // at which the value is to be erased
        multi_set.erase(ms_iterator);
      
        cout << "Modified multiset: ";
      
        for (ms_iterator = multi_set.begin();
             ms_iterator != multi_set.end();
             ++ms_iterator)
      
            cout << ' ' << *ms_iterator;
        cout << '\n';
      
        return 0;
    }
    Producción:

    Original multiset:  1 2 3 4 5 6 7 8 9
    Modified multiset:  1 3 4 5 6 7 8 9
    
  2. Sintaxis:
    size_type erase (const value_type& contant_value);
    

    Parámetros: Este método acepta los siguientes parámetros:

    • valor_constante : se refiere al elemento específico que se eliminará del conjunto múltiple con la ayuda de su valor. Debe ser constante. Todas las instancias de este valor se borran con este método.

    Valor devuelto: Este método devuelve el no. de valores que es/son eliminados.

    Los siguientes ejemplos ilustran el funcionamiento del método multiset::erase():

    // C++ program to demonstrate
    // multiset::erase() method
      
    #include <bits/stdc++.h>
    using namespace std;
      
    int main()
    {
      
        // Initialise the multiset
        multiset<int> multi_set;
      
        multiset<int>::iterator ms_iterator;
      
        // Add values to the multiset
        for (int i = 1; i < 10; i++) {
            multi_set.insert(i);
        }
      
        cout << "Original multiset: ";
      
        for (ms_iterator = multi_set.begin();
             ms_iterator != multi_set.end();
             ++ms_iterator)
            cout << ' ' << *ms_iterator;
        cout << '\n';
      
        ms_iterator = multi_set.begin();
      
        // Passing constant value to be erased
        int num = multi_set.erase(2);
      
        cout << "Modified multiset: "
             << "(" << num << ")"
             << "removed";
      
        for (ms_iterator = multi_set.begin();
             ms_iterator != multi_set.end();
             ++ms_iterator)
            cout << ' ' << *ms_iterator;
        cout << '\n';
      
        return 0;
    }
    Producción:

    Original multiset:  1 2 3 4 5 6 7 8 9
    Modified multiset:(1)removed  1 3 4 5 6 7 8 9
    
  3. Sintaxis:
    void erase (iterator starting_iterator, iterator ending_iterator);
    

    Parámetros: Este método acepta los siguientes parámetros:

    • iterador_inicial: Se refiere al iterador inicial del rango de valores que se eliminará del conjunto múltiple.
    • end_iterator : se refiere al iterador final del rango de valores que se eliminará del conjunto múltiple.

    Valor devuelto: este método devuelve el iterador que sigue al último elemento eliminado o finaliza el iterador.

    Los siguientes ejemplos ilustran el funcionamiento del método multiset::erase():

    // C++ program to demonstrate
    // multiset::erase() method
      
    #include <bits/stdc++.h>
    using namespace std;
      
    int main()
    {
      
        // Initialise the multiset
        multiset<int> multi_set;
        multiset<int>::iterator ms_iterator;
      
        // Add values to the multiset
        for (int i = 1; i < 10; i++) {
            multi_set.insert(i);
        }
      
        cout << "Original multiset: ";
      
        for (ms_iterator = multi_set.begin();
             ms_iterator != multi_set.end();
             ++ms_iterator)
      
            cout << ' ' << *ms_iterator;
        cout << '\n';
      
        ms_iterator = multi_set.begin();
        ms_iterator++;
        ms_iterator++;
      
        // Passing the iterator range for the positions
        // at which the values are to be erased
        auto ir = multi_set.erase(ms_iterator, multi_set.end());
      
        cout << "Modified multiset: ";
      
        for (ms_iterator = multi_set.begin();
             ms_iterator != multi_set.end();
             ++ms_iterator)
      
            cout << ' ' << *ms_iterator;
        cout << '\n';
        (ir == multi_set.end())
            ? cout << "Return value is: multi_set.end()\n "
            : cout
                  << "Return value is not multi_set.end()\n";
      
        return 0;
    }
    Producción:

    Original multiset:  1 2 3 4 5 6 7 8 9
    Modified multiset:  1 2
    Return value is: multi_set.end();
    

Publicación traducida automáticamente

Artículo escrito por Samdare B 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 *