Set cho phép xóa phần tử trực tiếp bằng giá trị với erase(value). Phần tử chỉ xuất hiện một lần.
Ví dụ
#include <iostream>
#include <set>
using namespace std;
void dispSet(set<int> myset) {
for (auto it = myset.begin(); it != myset.end(); ++it)
cout << ' ' << *it;
cout << '\n';
}
void deleteUsingValue(set<int> myset, int del_element) {
cout << "Set before deletion:";
dispSet(myset);
myset.erase(del_element);
cout << "Set after deleting " << del_element << ": ";
dispSet(myset);
}
int main() {
set<int> tempSet;
int arr[] = {10, 20, 30, 50, 60, 80, 90, 100, 120, 200, 500};
int n = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < n; i++)
tempSet.insert(arr[i]);
int del_element = 90;
deleteUsingValue(tempSet, del_element);
}
Kết quả
Set before deletion: 10 20 30 50 60 80 90 100 120 200 500 Set after deleting 90: 10 20 30 50 60 80 100 120 200 500