hash_map::erase
Hinweis
Diese API ist veraltet.Die Alternative ist unordered_map-Klasse.
Entfernt ein Element oder einen Bereich von Elementen in einem hash_map 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_map entfernt werden._First
Position des ersten Elements hat sich vom hash_map._Last
Position direkt über den letzten Eintrag hinaus entfernte sich vom hash_map._Key
Der Schlüsselwert der vom hash_map 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_map, wenn kein solches Element vorhanden ist.
Für die dritte Memberfunktion gibt die Anzahl von Elementen, die vom hash_map 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_map_erase.cpp
// compile with: /EHsc
#include <hash_map>
#include <iostream>
int main()
{
using namespace std;
using namespace stdext;
hash_map<int, int> hm1, hm2, hm3;
hash_map<int, int> :: iterator pIter, Iter1, Iter2;
int i;
hash_map<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_map 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_map 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
n = hm3.erase(2);
cout << "After the element with a key of 2 is deleted,\n"
<< "the hash_map 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"
<< endl;
cout << "of the 2nd element is deleted, "
<< "the hash_map hm3 is:";
for (pIter = hm3.begin(); pIter != hm3.end(); pIter++)
cout << " " << pIter -> second;
cout << "." << endl;
}
Anforderungen
Header: <hash_map>
Namespace: stdext