English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map delete()A função é usada para remover um único elemento ou um intervalo de elementos do contêiner map associado a uma chave dada. Portanto, o tamanho será reduzido pelo número de elementos removidos.
void erase(iterator position); // De++ 11 Antes size_type erase(const key_type& k); // De++ 11 Antes void erase(iterator first, iterator last); // De++ 11 Antes iterator erase(const_iterator position); //De++ 11 Começando size_type erase(const key_type& k); //De++ 11 Começando iterator erase(const_iterator first, const_iterator last); //De++ 11 Começando
Posição:Iterador que aponta para o único elemento a ser removido do map.
k:Remover a chave do elemento do map.
Primeiro:Remover o início do intervalo.
Último:Remover o final do intervalo.
Ele retorna um iterador para o próximo elemento removido ou retorna o número de elementos removidos.
Vamos ver um exemplo simples, removendo elementos através de iteradores.
#include <iostream> #include <map> #include <string> using namespace std; int main() { map<char, int> mymap; map<char, int>::iterator it; mymap['a'] =10; mymap['b'] =20; mymap['c'] =30; mymap['d'] =40; cout << "Antes de excluir elementos: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; it = mymap.find('b'); mymap.erase(it); // exclusão por iterador cout << "\nDepois de excluir elementos: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
Saída:
Antes de excluir elementos: a => 10 b => 20 c => 30 d => 40 Depois de excluir elementos: a => 10 c => 30 d => 40
No exemplo acima, o elemento foi excluído pelo iterador.
Vamos ver um exemplo simples, excluindo elementos do map com uma chave dada.
#include <iostream> #include <map> #include <string> using namespace std; int main() { map<char, int> mymap; map<char, int>::iterator it; mymap['a'] =10; mymap['b'] =20; mymap['c'] =30; mymap['d'] =40; cout << "Antes de excluir elementos: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; mymap.erase('c'); // exclusão por chave cout << "\nDepois de excluir elementos: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
Saída:
Antes de excluir elementos: a => 10 b => 20 c => 30 d => 40 Depois de excluir elementos: a => 10 b => 20 d => 40
No exemplo acima, foi usado a função delete(key) com a chave 'c' e seu valor mapeado.
Vamos ver um exemplo simples, excluindo elementos dentro de um determinado intervalo.
#include <iostream> #include <map> #include <string> using namespace std; int main() { map<char, int> mymap; map<char, int>::iterator it; mymap['a'] =10; mymap['b'] =20; mymap['c'] =30; mymap['d'] =40; cout << "Antes de excluir elementos: \n"; cout << "Tamanho: " << mymap.size() << '\n'; for (it = mymap.begin(); it != mymap.end(); ++it) cout << it->first << " => " << it->second << '\n'; mymap.erase(mymap.begin(), mymap.end()); // exclusão por intervalo cout << "\nDepois de excluir elementos: \n"; cout << "Tamanho: " << mymap.size(); for (it = mymap.begin(); it != mymap.end(); ++it) cout << it->first << " => " << it->second << '\n'; return 0; }
Saída:
Antes de excluir elementos: Tamanho é: 4 a => 10 b => 20 c => 30 d => 40 Depois de excluir elementos: Tamanho é: 0
No exemplo acima, foi usado a função delete(first, last) para excluir elementos dentro de um determinado intervalo (ou seja, do início ao fim).
Vamos ver um exemplo simples, removendo todos os números ímpares de um map.
#include <map> #include <iostream> using namespace std; int main() { map<int, string> m = {{1, "um"}, {2, "dois"}, {3, "três"}, {4, "quatro"}, {5, "cinco"}, {6, "seis", }; // Remova todos os números ímpares do m cout << "Os elementos após a remoção dos números ímpares são:\n "; for(auto it = m.begin(); it != m.end(); ) if(it->first % 2 == 1) it = m.erase(it); else ++it; for(auto& p : m) cout << p.second << ", "; }
Saída:
Os elementos após a remoção dos números ímpares são: dois, quatro, seis,
Em todos os exemplos acima, todos os números ímpares foram removidos e os números pares são exibidos.