📅  最后修改于: 2023-12-03 15:20:20.996000             🧑  作者: Mango
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()
函数来完成。