C++ set clear
The clear function in C++ for sets is employed to eliminate all elements within the set container. This action results in the set being emptied and its size being reset to zero.
Syntax
void clear(); //until C++ 11
void clear() noexcept; //since C++ 11
Parameter
Return value
Complexity
Linear in size.
Iterator validity
All iterators, references, and pointers associated with this container become invalidated.
Data Races
The container is modified.
All contained elements are modified.
Exception Safety
This function never throws exception.
Example 1
Let's explore a basic example to determine the cardinality of a set both before and after performing a clear operation:
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> myset = {10,20,30,40};
cout << "Initial size of set before clear operation = " << myset.size() << endl;
myset.clear();
cout << "Size of set after clear operation = " << myset.size() << endl;
return 0;
}
Output:
Initial size of set before clear operation = 4
Size of set after clear operation = 0
After initializing a set with four elements in the previous example, the size was 4. However, following the clear operation, the size is reset to 0.
Example 2
Let's examine a basic example to clarify the components within the set:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
set<string> myset;
myset = {"Nikita","Deep","Aman"};
cout << "myset contains:\n";
for (set<string>::iterator it=myset.begin(); it!=myset.end(); ++it)
cout << *it<< '\n';
myset.clear();
myset= {"Divya", "Raaz"};
cout << "\nmyset contains:\n";
for (set<string>::iterator it=myset.begin(); it!=myset.end(); ++it)
cout << *it<< '\n';
return 0;
}
Output:
myset contains:
Aman
Deep
Nikita
myset contains:
Divya
Raaz
After the previous set has been emptied, it is possible to insert new elements without the need for reinitialization.
Example 3
Let's examine a basic example to clarify the components within the set:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
int n;
set<string> m1,m2,m3;
m1 = {"Hello", "World"};
m2 = {"Java", "Program"};
m3 = {"C++", "Coding"};
cout << "m1 group has following members:\n";
for (set<string>::iterator it=m1.begin(); it!=m1.end(); ++it)
cout << *it << ' ';
cout << "\n\nm2 group has following members:\n";
for (set<string>::iterator it=m2.begin(); it!=m2.end(); ++it)
cout << *it<< ' ';
cout << "\n\nm3 group has following members:\n";
for (set<string>::iterator it=m3.begin(); it!=m3.end(); ++it)
cout << *it<< ' ';
cout<<"\n\nWhich group do you want to delete?\n 1.m1\n 2.m2\n 3.m3\n Please enter your choice: ";
cin>>n;
if(n==1){
m1.clear();
cout<<"\nGroup m1 has been cleared.";
}
else if(n==2){
m2.clear();
cout<<"\nGroup m2 has been cleared.";
}
else if(n==3){
m3.clear();
cout<<"\nGroup m3 has been cleared.";
}
else
cout<<"Invalid option!";
return 0;
}
Output:
m1 group has following members:
Hello World
m2 group has following members:
Java Program
m3 group has following members:
C++ Coding
Which group do you want to delete?
1.m1
2.m2
3.m3
Please enter your choice: 2
Group m2 has been cleared.
In the previous example, there are three sets of elements, and based on the user's selection, one set has been removed.
Example 4
Let's see a simple example:
#include <iostream>
#include <set>
using namespace std;
int main() {
int n;
set<string> fruit = {"Banana","Apple","Orange"};
cout << "Fruit bucket has following fruits = \n";
for (set<string>::iterator it=fruit.begin(); it!=fruit.end(); ++it)
cout << *it<< '\n';
cout<<"\nDo you want to clear your fruit bucket?\nPress 1 for Yes and 0 for No: ";
cin>>n;
if( n==1){
fruit.clear();
cout<<fruit.size()<<" fruits in bucket \n";
}
else if(n==0)
cout <<fruit.size() << " fruits in bucket \n" ;
return 0;
}
Output:
1.
Fruit bucket has following fruits =
Apple
Banana
Orange
Do you want to clear your fruit bucket?
Press 1 for Yes and 0 for No: 1
0 fruits in bucket
2.
Fruit bucket has following fruits =
Apple
Banana
Orange
Do you want to clear your fruit bucket?
Press 1 for Yes and 0 for No: 1
3 fruits in bucket
In the previous example, a collection of fruits is created with three items. To empty the collection, inputting 0 will result in the fruit basket containing 3 elements, while entering 1 will clear the fruit collection, reducing its size to 0.