21xrx.com
2024-06-03 04:01:43 Monday
登录
文章检索 我的文章 写文章
C++ Set 如何删除元素?
2023-07-05 06:34:43 深夜i     --     --
C++ Set 删除 元素

C++ Set是一种集合容器,它可以自动排序并去除重复元素。但是,有时候我们需要从Set中删除特定的元素。那么,C++ Set如何删除元素呢?下面介绍两种常用的方法。

方法一:erase()函数

erase()是Set中用于删除元素的成员函数。它有两种使用方式,一种是删除指定的元素,另一种是删除指定位置的元素。具体操作如下:

1. 删除指定的元素


set<int> myset 4;

myset.erase(3); // 删除元素3

2. 删除指定位置的元素


set<int> myset 5;

set<int>::iterator it = myset.find(3);

myset.erase(it); // 删除迭代器it所指向的元素3

值得注意的是,如果要删除的元素不存在,erase()函数也不会抛出异常,只是没有任何效果。

方法二:remove()函数

remove()函数是STL库中的一个常用算法,它可以用于删除指定的元素。但是,由于Set中的元素是自动排序的,因此如果直接使用remove()函数删除元素,可能会破坏Set的排序结构。解决办法是先使用find()函数查找元素,然后再使用erase()函数删除元素。具体操作如下:


set<int> myset 4;

set<int>::iterator it = find(myset.begin(), myset.end(), 3);

if (it != myset.end()) // 判断元素是否存在

  myset.erase(it); // 删除元素3

总结

以上两种方法都可以用于删除C++ Set中的元素,具体使用哪一种取决于实际需求。不过,建议优先使用erase()函数,因为它是Set的成员函数,所以可以直接调用,更为方便。如果一定要使用remove()函数,也要注意保持Set的排序结构,避免意外错误的发生。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复