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