hash_multiset::erase
[!NOTA]
Questo API è obsoleto.L'alternativa consiste unordered_multiset Class.
Rimuove un elemento o un intervallo di elementi in un hash_multiset 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_multiset._First
Posizione del primo elemento rimosso da hash_multiset._Last
Percorsi semplicemente oltre l'ultimo elemento rimosso da hash_multiset._Key
La chiave degli elementi dalla hash_multiset.
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_multiset se tale elemento non esiste.Per la terza funzione membro, il numero di elementi rimossi da hash_multiset.
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_multiset_erase.cpp
// compile with: /EHsc
#include <hash_set>
#include <iostream>
int main()
{
using namespace std;
using namespace stdext;
hash_multiset<int> hms1, hms2, hms3;
hash_multiset<int> :: iterator pIter, Iter1, Iter2;
int i;
hash_multiset<int>::size_type n;
for (i = 1; i < 5; i++)
{
hms1.insert(i);
hms2.insert(i * i);
hms3.insert(i - 1);
}
// The 1st member function removes an element at a given position
Iter1 = ++hms1.begin();
hms1.erase(Iter1);
cout << "After the 2nd element is deleted,\n "
<< "the hash_multiset hms1 is:" ;
for (pIter = hms1.begin(); pIter != hms1.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
// The 2nd member function removes elements
// in the range [_First, _Last)
Iter1 = ++hms2.begin();
Iter2 = --hms2.end();
hms2.erase(Iter1, Iter2);
cout << "After the middle two elements are deleted,\n "
<< "the hash_multiset hms2 is:" ;
for (pIter = hms2.begin(); pIter != hms2.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
// The 3rd member function removes elements with a given _Key
n = hms3.erase(2);
cout << "After the element with a key of 2 is deleted,\n "
<< "the hash_multiset hms3 is:" ;
for (pIter = hms3.begin(); pIter != hms3.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
// The 3rd member function returns the number of elements removed
cout << "The number of elements removed from hms3 is: "
<< n << "." << endl;
// The dereferenced iterator can also be used to specify a key
Iter1 = ++hms3.begin();
hms3.erase(Iter1);
cout << "After another element with a key "
<< "equal to that of the 2nd element\n is deleted, "
<< "the hash_multiset hms3 is:" ;
for (pIter = hms3.begin(); pIter != hms3.end(); pIter++)
cout << " " << *pIter;
cout << "." << endl;
}
Requisiti
intestazione: <hash_set>
Stdext diSpazio dei nomi: