set 删除示例

#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;
}

 

posted @ 2025-10-08 11:31  付书恒  阅读(2)  评论(0)    收藏  举报