Freigeben über


set::erase

Entfernt ein Element oder einen Bereich von Elementen in einem Satz 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, der aus dem Satz entfernt werden.

  • _First
    Position des ersten Elements aus dem Satz entfernt.

  • _Last
    Positionieren Sie direkt über dem letzten Element hinaus, das aus dem Satz entfernt wird.

  • _Key
    Der Schlüssel der aus dem Satz entfernt werden 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 des Satzes, wenn kein solches Element vorhanden ist.Für die dritte Memberfunktion die Anzahl von Elementen, die aus dem Satz entfernt wurden.

HinweisHinweis

Dieser Rückgabetyp stimmt nicht mit der den C++-Standard an.

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.

// set_erase.cpp
// compile with: /EHsc
#include <set>
#include <iostream>

int main()
{
    using namespace std;
    set<int> s1, s2, s3;
    set<int>::iterator pIter, Iter1, Iter2;
    int i;
    set<int>::size_type n;

    for (i = 1; i < 5; i++)
    {
        s1.insert(i);
        s2.insert(i * i);
        s3.insert(i - 1);
    }

    // The 1st member function removes an element at a given position
    Iter1 = ++s1.begin();
    s1.erase(Iter1);

    cout << "After the 2nd element is deleted, the set s1 is:";
    for (pIter = s1.begin(); pIter != s1.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;

    // The 2nd member function removes elements
    // in the range [_First, _Last)
    Iter1 = ++s2.begin();
    Iter2 = --s2.end();
    s2.erase(Iter1, Iter2);

    cout << "After the middle two elements are deleted, "
         << "the set s2 is:";
    for (pIter = s2.begin(); pIter != s2.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;

    // The 3rd member function removes elements with a given _Key
    n = s3.erase(2);

    cout << "After the element with a key of 2 is deleted, "
         << "the set s3 is:";
    for (pIter = s3.begin(); pIter != s3.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;

    // The 3rd member function returns the number of elements removed
    cout << "The number of elements removed from s3 is: "
         << n << "." << endl;

    // The iterator can also be used to specify a key
    Iter1 = ++s3.begin();
    s3.erase(Iter1);

    cout << "After another element (unique for set) with a key"
         << endl;
    cout << "equal to that of the 2nd element is deleted, "
         << "the set s3 is:";
    for (pIter = s3.begin(); pIter != s3.end(); pIter++)
        cout << " " << *pIter;
    cout << "." << endl;
}
  
  
  
  
  

Anforderungen

Header: <set>

Namespace: std

Siehe auch

Referenz

set Class

Standardvorlagenbibliothek