set::erase
Supprime un élément ou une plage d'éléments dans un jeu des positions spécifiées ou supprime des éléments qui correspondent à une clé spécifiée.
iterator erase(
iterator _Where
);
iterator erase(
iterator _First,
iterator _Last
);
size_type erase(
const key_type& _Key
);
Paramètres
_Where
Position de l'élément à supprimer du jeu._First
Position du premier élément est supprimé du jeu._Last
Positionnez uniquement au delà de le dernier élément supprimé du jeu._Key
La clé des éléments à supprimer du jeu.
Valeur de retour
Pour les deux premières fonctions membres, un itérateur bidirectionnel qui indique le premier élément restant en plus de tous les éléments supprimés, ou un pointeur vers la fin du jeu s'il n'existe aucun élément.Pour la troisième fonction membre, le nombre d'éléments supprimés du jeu.
[!REMARQUE]
Ce type de retour n'est pas conforme à la norme C++.
Notes
Parfois, cette méthode peut lever une exception d' out_of_range .
Exemple
Lors de la compilation cet exemple avec l'indicateur d' /Wp64 ou sur une plateforme 64 bits, l'avertissement du compilateur l'erreur C4267 est généré.Pour plus d'informations sur cet avertissement, consultez Avertissement du compilateur (niveau 3) C4267.
// set_erase.cpp
// compile with: /EHsc
#include <set>
#include <iostream>
int main()
{
using namespace std;
set<int> s1, s2, s3;
set<int>::iterator pIter, Iter1, Iter2;
int i;
set<int>::size_type n;
for (i = 1; i < 5; i++)
{
s1.insert(i);
s2.insert(i * i);
s3.insert(i - 1);
}
// The 1st member function removes an element at a given position
Iter1 = ++s1.begin();
s1.erase(Iter1);
cout << "After the 2nd element is deleted, the set s1 is:";
for (pIter = s1.begin(); pIter != s1.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
// The 2nd member function removes elements
// in the range [_First, _Last)
Iter1 = ++s2.begin();
Iter2 = --s2.end();
s2.erase(Iter1, Iter2);
cout << "After the middle two elements are deleted, "
<< "the set s2 is:";
for (pIter = s2.begin(); pIter != s2.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
// The 3rd member function removes elements with a given _Key
n = s3.erase(2);
cout << "After the element with a key of 2 is deleted, "
<< "the set s3 is:";
for (pIter = s3.begin(); pIter != s3.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
// The 3rd member function returns the number of elements removed
cout << "The number of elements removed from s3 is: "
<< n << "." << endl;
// The iterator can also be used to specify a key
Iter1 = ++s3.begin();
s3.erase(Iter1);
cout << "After another element (unique for set) with a key"
<< endl;
cout << "equal to that of the 2nd element is deleted, "
<< "the set s3 is:";
for (pIter = s3.begin(); pIter != s3.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
}
Configuration requise
en-tête : <set>
l'espace de noms : DST