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