Compartir a través de


hash_set::erase

[!NOTA]

Esta API está obsoleta.La alternativa es unordered_set Class.

Quita un elemento o un intervalo de elementos en un hash_set de posiciones especificadas o quita los elementos que coinciden con una clave especificada.

iterator erase(
   iterator _Where
);
iterator erase(
   iterator _First,
   iterator _Last
);
size_type erase(
   const key_type& _Key
);

Parámetros

  • _Where
    Posición del elemento que se va a quitar del hash_set.

  • _First
    Posición del primer elemento quitado de hash_set.

  • _Last
    Colocar simplemente más allá del último elemento quitado de hash_set.

  • _Key
    La clave de los elementos que se van a quitar de hash_set.

Valor devuelto

Para las primeras dos funciones miembro, un iterador bidireccional que designa el primer elemento que permanece más allá de cualquier elemento quitado, o un puntero al final de hash_set si no existe ese elemento.Para la tercera función miembro, el número de elementos que se han quitado de hash_set.

Comentarios

Las funciones miembro nunca producen una excepción.

En Visual C++ .NET 2003, los miembros de los archivos de encabezado <hash_map> y <hash_set> ya no están en el espacio de nombres std, pero se han movido bastante al espacio de nombres stdext.Vea El espacio de nombres stdext para obtener más información.

Ejemplo

Al compilar este ejemplo con el marcador /Wp64 o en una plataforma de 64 bits, el compilador que excluya C4267 se generará.Para obtener más información sobre esta advertencia, vea Advertencia del compilador (nivel 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;
}
  
  
  
  
  

Requisitos

Encabezado: <hash_set>

Stdext deEspacio de nombres:

Vea también

Referencia

hash_set Class

Biblioteca de plantillas estándar