English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & Chaîne

C++ Structure des données

C++ Classe & Objet

C++ Pointeur

C++ Héritage

C++ STL Tutoriel

C++ Manuel de référence

C++ Utilisation et exemple de la fonction map erase()

C++ STL map (conteneur)

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.

Syntaxe

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

Paramètres

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.

Valeur de retour

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.

Exemple1

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.

Exemple2

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.

Exemple3

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).

Exemple4

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.

C++ STL map (conteneur)