Freigeben über


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

Siehe auch

Referenz

hash_map-Klasse

Standardvorlagenbibliothek