Partager via


hash_set::erase

Notes

Cette API est obsolète.L'alternative est unordered_set, classe.

Supprime un élément ou une plage des éléments dans un hash_set les positions spécifiées ou supprimer les éléments qui correspondent à la 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 hash_set.

  • _First
    Position du premier élément est supprimé du hash_set.

  • _Last
    Placez simplement au delà de le dernier élément supprimé du hash_set.

  • _Key
    La clé des éléments à supprimer du hash_set.

Valeur de retour

Pour les deux premières fonctions de membre, un itérateur bidirectionnelle qui indique le premier élément restant au delà de tous les éléments supprimés, ou un pointeur à la fin de le hash_set si aucun ce élément n'existe. Pour la troisième fonction membre, le nombre d'éléments supprimés du hash_set.

Notes

Les fonctions membres ne jamais lèvent une exception.

Dans Visual C++ .NET 2003, les membres des fichiers d'en-tête <hash_map> et de <hash_set> ne sont plus dans l'espace de noms standard, mais ont été plutôt déplacés dans l'espace de noms de stdext. Pour plus d'informations, consultez The stdext Namespace.

Exemple

Lors de la compilation de cet exemple avec l'indicateur d'/Wp64 ou sur une plateforme 64 bits, l'avertissement du compilateur C4267 est généré. Pour plus d'informations sur cet avertissement, consultez Avertissement du compilateur (niveau 3) C4267.

// hash_set_erase.cpp
// compile with: /EHsc
#include <hash_set>
#include <iostream>

int main()
{
    using namespace std;
    using namespace stdext;
    hash_set<int> hs1, hs2, hs3;
    hash_set<int>::iterator pIter, Iter1, Iter2;
    int i;
    hash_set<int>::size_type n;

    for (i = 1; i < 5; i++)
    {
        hs1.insert (i);
        hs2.insert (i * i);
        hs3.insert (i - 1);
    }

    // The 1st member function removes an element at a given position
    Iter1 = ++hs1.begin();
    hs1.erase(Iter1);

    cout << "After the 2nd element is deleted, the hash_set hs1 is:";
    for (pIter = hs1.begin(); pIter != hs1.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;

    // The 2nd member function removes elements
    // in the range [_First, _Last)
    Iter1 = ++hs2.begin();
    Iter2 = --hs2.end();
    hs2.erase(Iter1, Iter2);

    cout << "After the middle two elements are deleted, "
         << "the hash_set hs2 is:";
    for (pIter = hs2.begin(); pIter != hs2.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;

    // The 3rd member function removes elements with a given _Key
    n = hs3.erase(2);

    cout << "After the element with a key of 2 is deleted, "
         << "the hash_set hs3 is:";
    for (pIter = hs3.begin(); pIter != hs3.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;

    // The 3rd member function returns the number of elements removed
    cout << "The number of elements removed from hs3 is: "
         << n << "." << endl;

    // The dereferenced iterator can also be used to specify a key
    Iter1 = ++hs3.begin();
    hs3.erase(Iter1);

    cout << "After another element (unique for hash_set) with a key "
         << endl;
    cout  << "equal to that of the 2nd element is deleted, "
          << "the hash_set hs3 is:";
    for (pIter = hs3.begin(); pIter != hs3.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;
}
  

Configuration requise

Header: <hash_set>

Espace de noms : stdext

Voir aussi

Référence

hash_set, classe

Bibliothèque STL (Standard Template Library)