map::erase
Entfernt ein Element oder einen Bereich von Elementen in einer Zuordnung von den angegebenen Speicherorten oder Elemente 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, von der Zuordnung entfernt werden._First
Position des ersten Elements entfernt von der Zuordnung._Last
Positionieren Sie direkt über dem letzten Element aus, das von der Zuordnung entfernt wird._Key
Der Schlüsselwert der von der Zuordnung zu entfernenden Elemente.
Rückgabewert
Für die ersten zweiköpfigen Funktionen, einen bidirektionalen Iterator, der das erste Element festlegt, das über allen entfernten Elemente hinaus bleibt oder einen Zeiger auf das Ende der Zuordnung, wenn kein solches Element vorhanden ist.
Hinweis |
---|
Dieser Rückgabetyp stimmt nicht mit der den C++-Standard an. |
Für die dritte Memberfunktion gibt die Anzahl von Elementen, die von der Zuordnung entfernt wurden.
Hinweise
In einigen Fällen hat diese Methode möglicherweise eine Ausnahme aus. out_of_range
Beispiel
Wenn Sie dieses Beispiel mit dem /Wp64 - oder auf einer 64-Bit-Plattform kompiliert, Compilerwarnung wird C4267 generiert.Weitere Informationen über diese Warnung, finden Sie unter Compilerwarnung (Stufe 3) C4267.
// map_erase.cpp
// compile with: /EHsc
#include <map>
#include <iostream>
int main()
{
using namespace std;
map<int, int> m1, m2, m3;
map<int, int>::iterator pIter, Iter1, Iter2;
int i;
map<int, int>::size_type n;
typedef pair<int, int> Int_Pair;
for (i = 1; i < 5; i++)
{
m1.insert(Int_Pair(i, i));
m2.insert(Int_Pair(i, i*i));
m3.insert(Int_Pair(i, i-1));
}
// The 1st member function removes an element at a given position
Iter1 = ++m1.begin();
m1.erase(Iter1);
cout << "After the 2nd element is deleted, the map m1 is:";
for (pIter = m1.begin(); pIter != m1.end(); pIter++)
cout << " " << pIter->second;
cout << "." << endl;
// The 2nd member function removes elements
// in the range [_First, _Last)
Iter1 = ++m2.begin();
Iter2 = --m2.end();
m2.erase(Iter1, Iter2);
cout << "After the middle two elements are deleted,"
<< " the map m2 is:";
for (pIter = m2.begin(); pIter != m2.end(); pIter++)
cout << " " << pIter->second;
cout << "." << endl;
// The 3rd member function removes elements with a given _Key
n = m3.erase(2);
cout << "After the element with a key of 2 is deleted,\n"
<< "the map m3 is:";
for (pIter = m3.begin(); pIter != m3.end(); pIter++)
cout << " " << pIter->second;
cout << "." << endl;
// The 3rd member function returns the number of elements removed
cout << "The number of elements removed from m3 is: "
<< n << "." << endl;
// The dereferenced iterator can also be used to specify a key
Iter1 = ++m3.begin();
m3.erase(Iter1);
cout << "After another element with a key equal to that"
<< endl;
cout << "of the 2nd element is deleted, "
<< "the map m3 is:";
for (pIter = m3.begin(); pIter != m3.end(); pIter++)
cout << " " << pIter->second;
cout << "." << endl;
}
Anforderungen
Header: <map>
Namespace: std