📜  std::set remove item - C++ (1)

📅  最后修改于: 2023-12-03 15:20:20.996000             🧑  作者: Mango

使用 std::set 删除元素 - C++

std::set 是 C++ 中的一个关联容器,在其中存储的元素是按照一定的排序原则进行排序的,而且每个元素都是唯一的。如果我们需要从 std::set 中删除某个元素,可以使用 erase() 函数。

erase() 函数

erase() 函数有多个重载形式,其中最常用的是以下两个:

set::size_type erase (const key_type& k);
set::iterator erase (const_iterator position);

第一个函数接受一个 key_type 类型的参数,表示要从 std::set 中删除具有该关键字的元素,返回值是删除的元素个数。

第二个函数接受一个 const_iterator 类型的参数,表示要删除该迭代器指向的元素,返回值是指向被删除元素的后一个元素的迭代器。

示例

下面是一个使用 erase() 函数从 std::set 中删除元素的示例:

#include <iostream>
#include <set>

int main() {
    // 创建一个 std::set 对象
    std::set<int> mySet{1, 2, 3, 4, 5};

    // 删除元素值为 3 的元素
    mySet.erase(3);

    // 删除迭代器指向的元素
    auto it = mySet.find(4);
    if (it != mySet.end()) {
        mySet.erase(it);
    }

    // 输出剩下的元素
    for (auto& x : mySet) {
        std::cout << x << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:

1 2 5
总结

std::set 是一个非常有用的容器,可以帮助我们对元素进行排序和去重。在需要删除元素时,可以使用 erase() 函数来完成。