La función de borrado se utiliza para borrar elementos de unordered_map. Unordered_map admite tres tipos de funciones de borrado:
- borrado por iterador : toma un iterador como parámetro y borra la clave y el valor presente en ese iterador.
Sintaxisunordered_map.erase(const iterator);
- borrado por clave : Toma una clave como parámetro y borra la clave y el valor.
Sintaxisunordered_map.erase(const key);
- borrar por rango : toma dos iteradores como parámetro y borra todas las claves y valores presentes en el medio (incluido el iterador inicial y excluyendo el iterador final).
Sintaxis:unordered_map.erase(const iteratorStart, const iteratorEnd);
// CPP program to demonstrate implementation of // erase function in unordered_map. #include <bits/stdc++.h> using namespace std; int main() { unordered_map<int, bool> um; // Adding some elements in the map. um[12] = true; um[4189] = false; um[519] = true; um[40] = false; um[4991] = true; cout << "Contents of the unordered_map : \n"; for (auto p : um) cout << p.first << "==>" << p.second << "\n"; cout << "\n"; // erase by iterator cout << "After erasing by Iterator : \n"; um.erase(um.begin()); for (auto p : um) cout << p.first << "==>" << p.second << "\n"; cout << "\n"; // erase by value cout << "After erasing by Key : \n"; um.erase(4189); for (auto p : um) cout << p.first << "==>" << p.second << "\n"; cout << "\n"; // erase by range cout << "After erasing by Range : \n"; auto it = um.begin(); it++; // Returns iterator pointing to second element um.erase(it, um.end()); for (auto p : um) cout << p.first << "==>" << p.second << "\n"; cout << "\n"; return 0; }
Producción:
Contents of the unordered_map : 4991==>1 519==>1 40==>0 12==>1 4189==>0 After erasing by Iterator : 519==>1 40==>0 12==>1 4189==>0 After erasing by Key : 519==>1 40==>0 12==>1 After erasing by Range : 519==>1