hash_set::erase
[!NOTA]
Questo API è obsoleto.L'alternativa consiste unordered_set Class.
Rimuove un elemento o un intervallo di elementi in un hash_set da percorsi specificati o rimuove gli elementi che soddisfano una chiave specificata.
iterator erase(
iterator _Where
);
iterator erase(
iterator _First,
iterator _Last
);
size_type erase(
const key_type& _Key
);
Parametri
_Where
Posizione dell'elemento da rimuovere dal hash_set._First
Posizione del primo elemento rimosso da hash_set._Last
Percorsi semplicemente oltre l'ultimo elemento rimosso da hash_set._Key
La chiave degli elementi dalla hash_set.
Valore restituito
Per le prime due funzioni membro, un iteratore bidirezionale che definisce il primo elemento rimanente a tutti gli elementi eliminati, o un puntatore alla fine del hash_set se tale elemento non esiste.Per la terza funzione membro, il numero di elementi rimossi da hash_set.
Note
Le funzioni membro non generano mai un'eccezione.
In Visual C++ .NET 2003, i membri dei file di intestazione <hash_set> e <hash_map> non sono più nello spazio dei nomi di deviazione standard, ma sono stati spostati nello spazio dei nomi di stdext.Per ulteriori informazioni, vedere lo spazio dei nomi stdext.
Esempio
Nel compilare l'esempio con il flag /Wp64 o su una piattaforma a 64 bit, di avviso del compilatore l'avviso C4267 viene generato.Per ulteriori informazioni su questo problema, vedere Avviso del compilatore (livello 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;
}
Requisiti
intestazione: <hash_set>
Stdext diSpazio dei nomi: