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

La función unordered_set::erase() es una función incorporada en C++ STL que se usa para eliminar un solo elemento o un grupo de elementos que van desde el inicio (incluido) hasta el final (exclusivo). Esto disminuye el tamaño de un contenedor por el número de elementos eliminados.
Nota : los cubos en unordered_set están numerados de 0 a n-1, donde n es el número total de cubos.
Sintaxis
 Se puede declarar de tres formas,

Method(1): unordered_set_name.erase(iterator start, iterator end)
       
Method(2): unordered_set_name.erase(iterator position)
          
Method(3): unordered_set_name.erase(element)

Complejidad: 

Caso promedio : Lineal en el número de elementos eliminados (que es constante para el Método (2) y el Método (3)).

Peor caso : Lineal en el tamaño del contenedor.

Parámetros: La función acepta tres tipos de parámetros. Si acepta un solo elemento, encuentra ese elemento en particular y lo borra todo. Si acepta un iterador, entonces borra el elemento presente en esa posición. Si acepta dos iteradores start y end, borra todos los elementos del rango [start, end] 

Valor de retorno : esta función devuelve un iterador que apunta al elemento que sigue al último elemento que se borra en el caso de las dos primeras sintaxis. En el caso de la tercera sintaxis, devuelve 0 si el elemento no está presente en unordered_set; de lo contrario, devuelve 1 después de borrar el elemento. 

Los siguientes programas ilustran la función unordered_set::erase() :
Programa 1

CPP

// CPP program to illustrate the
// unordered_set::erase() function
 
#include <iostream>
#include <unordered_set>
 
using namespace std;
 
int main()
{
 
    unordered_set<int> sampleSet;
 
    // Inserting elements
    sampleSet.insert(5);
    sampleSet.insert(10);
    sampleSet.insert(15);
    sampleSet.insert(20);
    sampleSet.insert(25);
 
    // erases a particular element by its position
    sampleSet.erase(sampleSet.find(10));
 
    // displaying the set after removal
    for (auto it = sampleSet.begin(); it != sampleSet.end(); it++) {
        cout << *it << " ";
    }
 
    // erases a range of elements
    sampleSet.erase(sampleSet.begin(), sampleSet.end());
 
    cout << "\nSet size: " << sampleSet.size();
 
    return 0;
}

Salida

25 5 15 20  
Set size: 0

Programa 2

CPP

// CPP program to illustrate the
// unordered_set::erase() function
 
#include <iostream>
#include <string>
#include <unordered_set>
 
using namespace std;
 
int main()
{
 
    unordered_set<string> sampleSet = { "geeks1", "for", "geeks2" };
 
    // erases a particular element
    sampleSet.erase("geeks1");
 
    // displaying the set after removal
    cout << "Elements: ";
    for (auto it = sampleSet.begin(); it != sampleSet.end(); it++) {
        cout << *it << " ";
    }
 
    sampleSet.insert("geeks1");
    // erases from where for is
    sampleSet.erase(sampleSet.find("for"), sampleSet.end());
 
    // displaying the set after removal
    cout << "\nAfter second removal set : ";
    for (auto it = sampleSet.begin(); it != sampleSet.end(); it++) {
        cout << *it << " ";
    }
 
    return 0;
}

Salida

Elements: geeks2 for 
After second removal set : geeks1 geeks2 

Publicación traducida automáticamente

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