English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map delete()La funzione viene utilizzata per eliminare un singolo elemento o un intervallo di elementi associati a una chiave data nel contenitore map. Pertanto, la dimensione sarà ridotta tramite il numero di elementi eliminati.
void erase(iterator position); // Prima del C++ 11 size_type erase(const key_type& k); // Prima del C++ 11 void erase(iterator first, iterator last); // Prima del C++ 11 iterator erase(const_iterator position); // Da C++ 11 size_type erase(const key_type& k); // Da C++ 11 iterator erase(const_iterator first, const_iterator last); // Da C++ 11
position: Puntatore all'elemento singolo da rimuovere dal map.
k: Per rimuovere la chiave dell'elemento da map.
first: Per cancellare l'inizio dell'intervallo.
last: Per cancellare la fine dell'intervallo.
Restituisce un iteratore che punta al elemento successivo dell'elemento cancellato, o restituisce il numero di elementi cancellati.
Facciamo un esempio semplice per cancellare un elemento tramite l'iteratore.
#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<<"Prima di eliminare gli elementi: \n"; for (it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; it = mymap.find('b'); mymap.erase(it); // Eliminazione tramite iteratore cout<<"\nDopo aver eliminato gli elementi: \n"; for (it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
Output:
Prima di eliminare gli elementi: a => 10 b => 20 c => 30 d => 40 Dopo aver eliminato gli elementi: a => 10 c => 30 d => 40
Nell'esempio precedente, l'elemento è stato cancellato dall'iteratore.
Lasciate che vi mostriamo un esempio semplice, eliminare gli elementi della mappa con una chiave data.
#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<<"Prima di eliminare gli elementi: \n"; for (it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; mymap.erase ('c'); // eliminazione per chiave cout<<"\nDopo aver eliminato gli elementi: \n"; for (it=mymap.begin(); it!=mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
Output:
Prima di eliminare gli elementi: a => 10 b => 20 c => 30 d => 40 Dopo aver eliminato gli elementi: a => 10 b => 20 d => 40
Nell'esempio sopra, è stato utilizzato la funzione delete(key) utilizzando la chiave 'c' e il valore mappato.
Lasciate che vi mostriamo un esempio semplice, eliminare gli elementi con un intervallo specificato.
#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<<"Prima di eliminare gli elementi: \n"; cout<<"Dimensione: "<<mymap.size()<<'\n'; for (it=mymap.begin(); it!=mymap.end(); ++it) cout << it->first << " => " << it->second << '\n'; mymap.erase ( mymap.begin () , mymap.end () ); // eliminazione per intervallo cout<<"\nDopo aver eliminato gli elementi: \n"; cout<<"Dimensione: "<<mymap.size(); for (it=mymap.begin(); it!=mymap.end(); ++it) cout << it->first << " => " << it->second << '\n'; return 0; }
Output:
Prima di eliminare gli elementi: La dimensione è: 4 a => 10 b => 20 c => 30 d => 40 Dopo aver eliminato gli elementi: La dimensione è: 0
Nell'esempio sopra, è stato utilizzato la funzione delete(first, last) per eliminare gli elementi con un intervallo specificato (cioè da inizio a fine).
Lasciate che vi mostriamo un esempio semplice, eliminare tutti gli numeri dispari da una mappa.
#include <map> #include <iostream> using namespace std; int main() { map<int, string> m = {{1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"}, {6, "six"}}; // Rimuovi tutti gli numeri dispari da m cout << "Gli elementi dopo la rimozione degli numeri dispari sono:\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 << ", "; }
Output:
Gli elementi dopo la rimozione degli numeri dispari sono: due, quattro, sei,
Tutti gli numeri dispari sono stati rimossi e mostrati gli numeri pari.