在 C++ 中,std::set
是一个关联容器,它包含一组唯一的对象。当你从 std::set
中删除一个元素时,它会自动调整其内部结构以保持元素的唯一性和排序。
要删除 std::set
中的元素,你可以使用 erase()
成员函数。这是一个简单的示例:
#include <iostream>
#include <set>
int main() {
// 创建一个包含一些整数的集合
std::set<int> my_set = {1, 2, 3, 4, 5};
// 输出集合中的元素
std::cout << "Before deletion: ";
for (int num : my_set) {
std::cout << num << " ";
}
std::cout << std::endl;
// 删除集合中的元素
int element_to_delete = 3;
my_set.erase(element_to_delete);
// 输出删除元素后的集合
std::cout << "After deletion: ";
for (int num : my_set) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
在这个示例中,我们首先创建了一个包含一些整数的 std::set
。然后,我们使用 erase()
函数删除了值为 3 的元素。最后,我们输出删除元素后的集合。
需要注意的是,erase()
函数可以接受一个迭代器作为参数,用于指定要删除的元素的位置。你也可以使用 erase()
函数的另一个重载版本,它接受两个迭代器作为参数,用于指定要删除的元素范围。例如:
// 删除集合中从 it1 到 it2(不包括 it2)的元素
auto it1 = my_set.begin();
auto it2 = my_set.find(4); // 假设我们要删除值为 4 的元素
my_set.erase(it1, it2);