English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map delete()La fonction est utilisée pour supprimer un seul élément ou une plage d'éléments associés à une clé donnée dans le conteneur map. Par conséquent, la taille sera réduite par le nombre d'éléments supprimés.
void erase(iterator position); // Dans++ 11 avant size_type erase(const key_type& k); // Dans++ 11 avant void erase(iterator first, iterator last); // Dans++ 11 avant iterator erase(const_iterator position); //De++ 11 Début size_type erase(const key_type& k); //De++ 11 Début iterator erase(const_iterator first, const_iterator last); //De++ 11 Début
position:Pour supprimer un seul élément de la map, pointeur sur l'itérateur.
k:Pour supprimer la clé de l'élément à enlever de la map.
first:Pour supprimer le début de la plage.
last:Pour supprimer la fin de la plage.
Il renvoie un itérateur pointant sur l'élément suivant de l'élément supprimé, ou renvoie le nombre d'éléments supprimés.
Laissez-nous voir un exemple simple, en supprimant des éléments par itérateur.
#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 << "Avant de supprimer l'élément: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; it = mymap.find('b'); mymap.erase(it); // effacer par itérateur cout << "\nAprès avoir supprimé l'élément: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
Sortie :
Avant de supprimer l'élément: a => 10 b => 20 c => 30 d => 40 Après avoir supprimé l'élément: a => 10 c => 30 d => 40
Dans l'exemple ci-dessus, l'élément est effacé par l'itérateur.
Laissez-nous voir un exemple simple, effacer l'élément de la map par une clé donnée.
#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 << "Avant de supprimer l'élément: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; mymap.erase('c'); // effacer par clé cout << "\nAprès avoir supprimé l'élément: \n"; for (it = mymap.begin(); it != mymap.end(); ++it) std::cout << it->first << " => " << it->second << '\n'; return 0; }
Sortie :
Avant de supprimer l'élément: a => 10 b => 20 c => 30 d => 40 Après avoir supprimé l'élément: a => 10 b => 20 d => 40
Dans l'exemple ci-dessus, la fonction delete(key) utilise la clé 'c' et sa valeur correspondante dans la carte.
Laissez-nous voir un exemple simple, effacer les éléments par une plage donnée.
#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 << "Avant de supprimer l'élément: \n"; cout << "Taille taille: " << mymap.size() << '\n'; for (it = mymap.begin(); it != mymap.end(); ++it) cout << it->first << " => " << it->second << '\n'; mymap.erase(mymap.begin(), mymap.end()); // effacer par plage cout << "\nAprès avoir supprimé l'élément: \n"; cout << "Taille taille: " << mymap.size(); for (it = mymap.begin(); it != mymap.end(); ++it) cout << it->first << " => " << it->second << '\n'; return 0; }
Sortie :
Avant de supprimer l'élément: Taille est: 4 a => 10 b => 20 c => 30 d => 40 Après avoir supprimé l'élément: Taille est: 0
Dans l'exemple ci-dessus, la fonction delete(first, last) est utilisée pour effacer les éléments dans une plage donnée (c'est-à-dire de la début à la fin).
Laissez-nous voir un exemple simple, supprimez tous les nombres impairs de la map.
#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"}}; // Supprimez tous les nombres impairs de m cout<<"Les éléments après la suppression des nombres impairs sont:\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 << ", "; }
Sortie :
Les éléments après la suppression des nombres impairs sont: two, four, six,
Dans l'exemple ci-dessus, tous les nombres impairs ont été supprimés et les nombres pairs sont affichés.