#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> data = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
cout << "初始数据: ";
for(int num : data) cout << num << " ";
cout << endl;
cout << "\n=== 删除操作详解 ===" << endl;
// 1. 通过值删除
size_t count1 = data.erase(30);
cout << "删除30: " << count1 << " 个元素" << endl;
// 2. 删除不存在的值
size_t count2 = data.erase(35);
cout << "删除35: " << count2 << " 个元素" << endl;
// 3. 通过迭代器删除
auto it = data.find(50);
if(it != data.end()) {
data.erase(it);
cout << "通过迭代器删除50成功" << endl;
}
// 4. 删除范围 [first, last)
auto first = data.find(60);
auto last = data.find(90);
if(first != data.end() && last != data.end()) {
data.erase(first, last); // 删除60,70,80,不删除90
cout << "范围删除60-80完成" << endl;
}
// 5. 清空所有元素
cout << "\n清空前大小: " << data.size() << endl;
data.clear();
cout << "清空后大小: " << data.size() << endl;
cout << "是否为空: " << (data.empty() ? "是" : "否") << endl;
return 0;
}