Udostępnij za pośrednictwem


set::erase

Usuwa element lub zakres elementów w zestawie z określonych pozycjach lub usuwa elementy zgodne z określonego klucza.

iterator erase(
   iterator _Where
);
iterator erase(
   iterator _First,
   iterator _Last
);
size_type erase(
   const key_type& _Key
);

Parametry

  • _Where
    Położenie elementu, który ma zostać usunięty z zestawu.

  • _First
    Pozycja pierwszego elementu usunięte z zestawu.

  • _Last
    Pozycja tylko poza ostatni element usunięty z zestawu.

  • _Key
    Klucz elementy usunięte z zestawu.

Wartość zwracana

Dla pierwszego funkcje dwóch iteratora dwukierunkowe, wyznacza pierwszy element pozostały poza elementy usunięte lub wskaźnik na końcu zestawu, jeśli element nie istnieje.Trzeci Członkowskie funkcji, liczba elementów, które zostały usunięte z zestawu.

[!UWAGA]

Ten typ zwrotu nie zgodne ze standardem C++.

Uwagi

W niektórych przypadkach ta metoda może być throw out_of_range wyjątku.

Przykład

Podczas kompilowania przykładzie z /Wp64 flagę lub na platformie 64-bitowe, zostanie wygenerowany kompilator ostrzeżenia C4267.Ostrzeżenie to uzyskać więcej informacji, zobacz Kompilator ostrzeżenia (poziom 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;
}
  
  
  
  
  

Wymagania

Nagłówek: <set>

Obszar nazw: std

Zobacz też

Informacje

set Class

Standardowa biblioteka szablonu