In C++, a set is an associative container that stores unique elements in a sorted order. In this article, we will learn how to remove all occurrences of a specific element from a set in C++.
Example:
Input:
mySet = {1,2,3,4,5};
target= 2
Output:
After Deletion: 1 3 4 5
Delete All Occurrences of an Element from a Set in C++
To delete all occurrences of a given element from a set first, search for the element to be removed using the std::set::find function if found erase the occurrence of that element from the set using the std::set::erase function.
Note: The set contains only unique elements, so there will be only one occurrence of an element in the set.
C++ Program to Remove All Occurrences of an Element from Set
The below program demonstrates how we can remove all occurrences of a specific element from the set in C++ STL.
// C++ program to remove all occurences of a specific // element from set #include <algorithm> #include <iostream> #include <set> using namespace std;
int main()
{ // creating a set
set< int > mySet = { 1, 2, 3, 2, 4, 5, 2 };
// Printing the initial set
cout << "Before deletion: " ;
for ( int elem : mySet) {
cout << elem << " " ;
}
cout << endl;
int target = 2; // Element to remove
// Find the first occurrence of the element to remove
auto it = mySet.find(target);
// Erase all occurrences of the element
while (it != mySet.end()) {
mySet.erase(it); // Erase the element
it = mySet.find(target); // Find the next occurrence
}
// Print the set after deletion
cout << "After Deletion: " ;
for ( int elem : mySet) {
cout << elem << " " ;
}
cout << endl;
return 0;
} |
Before deletion: 1 2 3 4 5 After Deletion: 1 3 4 5
Time Complexity: O(n log(n)), here n is the number of elements in the set.
Auxiliary Space: O(1)
Note: Here, we’re assuming that there is only single occurence of each element in a set.