map::erase (STL/CLR)
Supprime des éléments aux positions spécifiées.
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
bool erase(key_type key)
Paramètres
tout d'abord
Début de la plage à effacer.clé
Valeur de clé à effacer.bout
Fin de la plage à effacer.où
Élément à effacer.
Notes
La première fonction membre supprime l'élément de la séquence contrôlée désignée par where, et retourne un itérateur qui indique le premier élément restant au delà de l'élément supprimé, ou map::end (STL/CLR)() s'il n'existe aucun élément.Vous l'utilisez pour supprimer un seul élément.
La deuxième fonction membre supprime les éléments de la séquence contrôlée dans la plage [first,last), et retourne un itérateur qui indique le premier élément restant au delà de tous les éléments supprimés, ou end() s'il n'existe aucun élément.Vous l'utilisez pour supprimer des éléments zéro ou plus contigus.
La troisième fonction membre supprime un élément de la séquence contrôlée dont la clé a classer équivalent à key, puis retourne le nombre d'éléments supprimés.Vous l'utilisez pour supprimer et compter tous les éléments qui correspondent à une clé spécifiée.
Chaque effacement d'élément prend du temps proportionnel au logarithme du nombre d'éléments dans la séquence contrôlée.
Exemple
// cliext_map_erase.cpp
// compile with: /clr
#include <cliext/map>
typedef cliext::map<wchar_t, int> Mymap;
int main()
{
cliext::map<wchar_t, int> c1;
c1.insert(cliext::map<wchar_t, int>::make_value(L'a', 1));
c1.insert(cliext::map<wchar_t, int>::make_value(L'b', 2));
c1.insert(cliext::map<wchar_t, int>::make_value(L'c', 3));
// display contents " [a 1] [b 2] [c 3]"
for each (cliext::map<wchar_t, int>::value_type elem in c1)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// erase an element and reinspect
cliext::map<wchar_t, int>::iterator it =
c1.erase(c1.begin());
System::Console::WriteLine("erase(begin()) = [{0} {1}]",
it->first, it->second);
// add elements and display " b c d e"
c1.insert(cliext::map<wchar_t, int>::make_value(L'd', 4));
c1.insert(cliext::map<wchar_t, int>::make_value(L'e', 5));
for each (cliext::map<wchar_t, int>::value_type elem in c1)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// erase all but end
it = c1.end();
it = c1.erase(c1.begin(), --it);
System::Console::WriteLine("erase(begin(), end()-1) = [{0} {1}]",
it->first, it->second);
System::Console::WriteLine("size() = {0}", c1.size());
// erase end
System::Console::WriteLine("erase(L'x') = {0}", c1.erase(L'x'));
System::Console::WriteLine("erase(L'e') = {0}", c1.erase(L'e'));
return (0);
}
Configuration requise
en-tête :<cliext/carte>
Cliext del'espace de noms :