21xrx.com
2024-12-22 21:13:22 Sunday
登录
文章检索 我的文章 写文章
C++ Set如何删除元素?
2023-07-08 10:19:57 深夜i     --     --
C++ Set 删除 元素

C++ 中的 set 是一种容器,用于存储无序而唯一的元素。当我们需要从 set 中删除元素时,我们需要使用 erase() 函数。erase() 函数有两种不同的用法:一种是通过迭代器删除指定的元素,另一种是通过指定元素的值删除元素。

使用迭代器删除元素:

我们可以使用迭代器遍历 set 容器,并通过指定迭代器删除需要删除的元素。erase() 函数需要一个迭代器作为参数,并在指定的位置上删除元素。下面的代码演示了如何通过迭代器删除元素:


#include <iostream>

#include <set>

using namespace std;

int main()

{

  set<int> mySet;

  for(int i=1; i<=10; i++)

  {

    mySet.insert(i);

  }

  // 删除集合中 5 的元素

  set<int>::iterator it;

  it = mySet.find(5);

  mySet.erase(it);

  // 遍历 set 容器,验证元素是否已删除

  for(auto i=mySet.begin(); i!=mySet.end(); i++)

  {

    cout << *i << " ";

  }

  cout << endl;

  return 0;

}

上述代码中,我们首先创建了一个 set 容器,并向其中插入了 10 个元素。然后,我们通过 find() 函数找到值为 5 的元素,并返回指向该元素的迭代器。最后,我们使用 erase() 函数删除该元素,并确保只有 1-4 和 6-10 这 9 个元素在 set 容器中。

使用元素值删除元素:

我们还可以根据元素的值直接删除元素。当我们传递元素值作为参数给 erase() 函数时,该函数将会删除与该值匹配的所有元素。下面的代码演示了如何根据元素值从集合中删除元素:


#include <iostream>

#include <set>

using namespace std;

int main()

{

  set<int> mySet;

  for(int i=1; i<=10; i++)

  {

    mySet.insert(i);

  }

  // 删除集合中值为 5 的元素

  mySet.erase(5);

  // 遍历 set 容器,验证元素是否已删除

  for(auto i=mySet.begin(); i!=mySet.end(); i++)

  {

    cout << *i << " ";

  }

  cout << endl;

  return 0;

}

上述代码与前一个例子类似,只不过我们现在使用 erase() 函数删除值为 5 的元素。

需要注意的是,如果我们使用元素值删除元素,将删除所有与该值匹配的元素。因此,如果 set 容器中有多个匹配项,它们将一起被删除。但如果只想删除单个元素,请使用迭代器。

  
  

评论区

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