如何通过在C ++中传递其值从Set中删除元素

在这里,我们将看到如何通过将值作为参数传递来从集合中删除一个元素。因此,如果该集合类似于{10,20,30,50,60,80,90,100,120,200,500},而我们想删除90,它将是:{10,20,30,50, 60、80、100、120、200、500}

一组中每个元素只能出现一次,并且它们被排列。元素的值在添加时无法修改,因此这是不可变的。虽然我们可以从中添加或删除元素。

我们可以使用该erase()方法来完成此任务。

示例

#include<iostream>
#include<set>
using namespace std;
void dispSet(set<int> myset) {
   set<int>::iterator it;
   for (it = myset.begin(); it != myset.end(); ++it)
   cout << ' ' << *it;
   cout << '\n';
}
void deleteUsingValue(set<int> myset, int del_element) {
   cout << "删除前设置:";
   dispSet(myset);
   myset.erase(del_element);
   cout << "Set after deleting "<< del_element<< ": ";
   dispSet(myset);
}
int main() {
   set<int> tempSet;
   int arr[] = {10, 20, 30, 50, 60, 80, 90, 100, 120, 200, 500};
   int n = sizeof(arr)/sizeof(arr[0]);
   for (int i = 0; i < n; i++)
   tempSet.insert(arr[i]);
   int del_element = 90;
   deleteUsingValue(tempSet, del_element);
}

输出结果

删除前设置: 10 20 30 50 60 80 90 100 120 200 500
Set after deleting 90: 10 20 30 50 60 80 100 120 200 500