hash_multimap::erase
Hinweis
Diese API ist veraltet.Die Alternative ist unordered_multimap-Klasse.
Entfernt ein Element oder einen Bereich von Elementen in einem hash_multimap von den angegebenen Speicherorten Elemente oder entfernt, die einen angegebenen Schlüssel übereinstimmen.
iterator erase(
iterator _Where
);
iterator erase(
iterator _First,
iterator _Last
);
size_type erase(
const key_type& _Key
);
Parameter
_Where
Position des Elements, dem hash_multimap entfernt werden._First
Position des ersten Elements hat sich vom hash_multimap._Last
Position direkt über den letzten Eintrag hinaus entfernte sich vom hash_multimap._Key
Der Schlüssel der vom hash_multimap entfernt werden, Elemente.
Rückgabewert
Für die ersten beiden Memberfunktionen, einen bidirektionalen Iterator, der das erste Element festgelegt, das über allen Elementen entfernt hinaus bleibt oder einen Zeiger auf das Ende des hash_multimap, wenn kein solches Element vorhanden ist.
Für die dritte Memberfunktion gibt die Anzahl von Elementen, die vom hash_multimap entfernt wurden.
Hinweise
Die Memberfunktionen lösen niemals Ausnahmen aus.
In Visual C++ .NET 2003 sind Member der <hash_map> und <hash_set> Headerdateien nicht mehr im STD-Namespace enthalten. Sie wurden stattdessen in den stdext-Namespace verschoben. Weitere Informationen finden Sie unter Der stdext-Namespace.
Beispiel
Wenn Sie dieses Beispiel mit dem /Wp64-Flag oder auf einer 64-Bit-Plattform kompiliert, wird C4267 Compilerwarnung generiert. Weitere Informationen über diese Warnung, finden Sie unter Compilerwarnung (Stufe 3) C4267.
// hash_multimap_erase.cpp
// compile with: /EHsc
#include <hash_map>
#include <iostream>
int main()
{
using namespace std;
using namespace stdext;
hash_multimap<int, int> hm1, hm2, hm3;
hash_multimap<int, int> :: iterator pIter, Iter1, Iter2;
int i;
hash_multimap<int, int>::size_type n;
typedef pair<int, int> Int_Pair;
for (i = 1; i < 5; i++)
{
hm1.insert(Int_Pair (i, i) );
hm2.insert(Int_Pair (i, i*i) );
hm3.insert(Int_Pair (i, i-1) );
}
// The 1st member function removes an element at a given position
Iter1 = ++hm1.begin();
hm1.erase(Iter1);
cout << "After the 2nd element is deleted, "
<< "the hash_multimap hm1 is:";
for (pIter = hm1.begin(); pIter != hm1.end(); pIter++)
cout << " " << pIter -> second;
cout << "." << endl;
// The 2nd member function removes elements
// in the range [_First, _Last)
Iter1 = ++hm2.begin();
Iter2 = --hm2.end();
hm2.erase(Iter1, Iter2);
cout << "After the middle two elements are deleted, "
<< "the hash_multimap hm2 is:";
for (pIter = hm2.begin(); pIter != hm2.end(); pIter++)
cout << " " << pIter -> second;
cout << "." << endl;
// The 3rd member function removes elements with a given _Key
hm3.insert(Int_Pair (2, 5));
n = hm3.erase(2);
cout << "After the element with a key of 2 is deleted,\n"
<< " the hash_multimap hm3 is:";
for (pIter = hm3.begin(); pIter != hm3.end(); pIter++)
cout << " " << pIter -> second;
cout << "." << endl;
// The 3rd member function returns the number of elements removed
cout << "The number of elements removed from hm3 is: "
<< n << "." << endl;
// The dereferenced iterator can also be used to specify a key
Iter1 = ++hm3.begin();
hm3.erase(Iter1);
cout << "After another element with a key equal to that of the"
<< endl;
cout << " 2nd element is deleted, "
<< "the hash_multimap hm3 is:";
for (pIter = hm3.begin(); pIter != hm3.end(); pIter++)
cout << " " << pIter -> second;
cout << "." << endl;
}
Anforderungen
Header: <hash_map>
Namespace: stdext