阅读量:91
在 C++ 中,std::set 是一个关联容器,它包含一组唯一的对象
-
使用
erase()成员函数:std::set提供了一个名为erase()的成员函数,用于删除指定元素。要删除一个元素,只需提供该元素的值即可。例如:#include#include 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 class="hljs-string">" "; } return 0; } 输出:
1 2 4 5 -
使用
remove()算法:除了使用
erase()成员函数外,还可以使用 C++ 标准库中的remove()算法来删除指定元素。remove()算法会将所有等于指定值的元素移动到容器的末尾,并返回一个指向新逻辑末尾的迭代器。然后,可以使用erase()成员函数删除这些元素。例如:#include#include #include 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 class="hljs-string">" "; } return 0; } 输出:
1 2 4 5
请注意,remove() 算法并不会真正删除元素,而是将它们移动到容器的末尾。要实际删除这些元素,需要使用 erase() 成员函数。