從集合中刪除值
最明顯的方法是,如果你只是想將你的 set / multiset 重置為空的,就是使用 clear
:
std::set<int> sut;
sut.insert(10);
sut.insert(15);
sut.insert(22);
sut.insert(3);
sut.clear(); //size of sut is 0
然後可以使用 erase
方法。它提供了一些與插入相當的可能性:
std::set<int> sut;
std::set<int>::iterator it;
sut.insert(10);
sut.insert(15);
sut.insert(22);
sut.insert(3);
sut.insert(30);
sut.insert(33);
sut.insert(45);
// Basic deletion
sut.erase(3);
// Using iterator
it = sut.find(22);
sut.erase(it);
// Deleting a range of values
it = sut.find(33);
sut.erase(it, sut.end());
std::cout << std::endl << "Set under test contains:" << std::endl;
for (it = sut.begin(); it != sut.end(); ++it)
{
std::cout << *it << std::endl;
}
輸出將是:
Set under test contains:
10
15
30
所有這些方法也適用於 multiset
。請注意,如果你要求從 multiset
中刪除元素,並且該元素多次出現,則將刪除所有等效值。