c++ 中的 set 有何元素删除技巧

在 C++ 中,std::set 是一个关联容器,它包含一组唯一的对象使用 erase() 成员函数:std::set 提供了一个名为 erase() 的成员函数,用于删除指定元素。要删除一个元素,只需提供该元素的值即可。例如:#include #include int main() {std::set my_set = {1, 2, 3, 4, 5}

C++ 中,std::set 是一个关联容器,它包含一组唯一的对象

  1. 使用 erase() 成员函数:

    std::set 提供了一个名为 erase() 的成员函数,用于删除指定元素。要删除一个元素,只需提供该元素的值即可。例如:

    #include <iostream>
    #include <set>
    
    int main() {
        std::set<int> my_set = {1, 2, 3, 4, 5};
    
        // 删除元素 3
        my_set.erase(3);
    
        // 输出 set 的内容
        for (int element : my_set) {
            std::cout << element << " ";
        }
    
        return 0;
    }
    

    输出:

    1 2 4 5
    
  2. 使用 remove() 算法:

    除了使用 erase() 成员函数外,还可以使用 C++ 标准库中的 remove() 算法来删除指定元素。remove() 算法会将所有等于指定值的元素移动到容器的末尾,并返回一个指向新逻辑末尾的迭代器。然后,可以使用 erase() 成员函数删除这些元素。例如:

    #include <iostream>
    #include <set>
    #include <algorithm>
    
    int main() {
        std::set<int> my_set = {1, 2, 3, 4, 5};
    
        // 删除元素 3
        auto new_end = std::remove(my_set.begin(), my_set.end(), 3);
        my_set.erase(new_end, my_set.end());
    
        // 输出 set 的内容
        for (int element : my_set) {
            std::cout << element << " ";
        }
    
        return 0;
    }
    

    输出:

    1 2 4 5
    

请注意,remove() 算法并不会真正删除元素,而是将它们移动到容器的末尾。要实际删除这些元素,需要使用 erase() 成员函数。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1201628.html

(0)
派派
上一篇 2024-11-29
下一篇 2024-11-29

发表回复

登录后才能评论