Aracılığıyla paylaş


set::erase

Bir öğe veya öğeleri aralığı kümesinde belirtilen konumlardan kaldırır veya belirtilen anahtar eşleşen öğeleri kaldırır.

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

Parametreler

  • _Where
    Kümeden kaldırılması için öğenin konumu.

  • _First
    İlk öğenin konumunu kümesinden kaldırılır.

  • _Last
    Yalnızca son öğe ötesinde pozisyon kümesinden kaldırılır.

  • _Key
    Anahtar öğelerin kümesinden kaldırılır.

Dönüş Değeri

İlk iki üye işlevleri için çift yönlü Yineleyici, kaldırılan herhangi bir öğe veya kümesinin sonunu gösteren bir işaretçi ötesinde, bu tür bir öğe varsa, kalan ilk öğe belirler.Üçüncü üye işlev için kümesinden kaldırılır öğelerin sayısı.

[!NOT]

Bu dönüş türü C++ standardına uygun değil.

Notlar

Bazı durumlarda, bu yöntem oluabilir bir out_of_range özel durum.

Örnek

Bu örnek ile derlerken /Wp64 bayrak ya da 64-bit platformunda, derleyici C4267 uyarı oluşturulur.Bu uyarı hakkında daha fazla bilgi için bkz: Derleyici uyarı (Düzey 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;
}
  
  
  
  
  

Gereksinimler

Başlık: <set>

Namespace: std

Ayrıca bkz.

Başvuru

set Class

Standart Şablon Kütüphanesi