C++ multiset clear
C++ Multimultiset clear function is used to remove all the elements of the multiset container. It clears the multiset and converts its size to 0.
Syntax
void clear(); //until C++ 11
void clear() noexcept; //since C++ 11
Parameter
Return value
Complexity
Linear in size.
Iterator validity
All pointers, references and iterator related to this container are invalidated.
Data Races
The container is modified.
All contained elements are modified.
Exception Safety
This function never throws exception.
Example 1
Let's see the simple example to calculate the size of multiset before and after clear operation:
#include <iostream>
#include <set>
using namespace std;
int main() {
multiset<int> mymultiset = {10,20,20,30};
cout << "Initial size of multiset before clear operation = " << mymultiset.size() << endl;
mymultiset.clear();
cout << "Size of multiset after clear operation = " << mymultiset.size() << endl;
return 0;
}
Output:
Initial size of multiset before clear operation = 4
Size of multiset after clear operation = 0
In the above example, a multiset is initialized with 4 elements therefore, the size is 4 but after the clear operation, size becomes 0.
Example 2
Let's see a simple example to clear the elements of the multiset:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
multiset<string> mymultiset;
mymultiset = {"Nikita","Deep","Aman"};
cout << "mymultiset contains:\n";
for (multiset<string>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it)
cout << *it<< '\n';
mymultiset.clear();
mymultiset= {"Deep", "Raaz"};
cout << "\nmymultiset contains:\n";
for (multiset<string>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it)
cout << *it<< '\n';
return 0;
}
Output:
mymultiset contains:
Aman
Deep
Nikita
mymultiset contains:
Deep
Raaz
In the above example, after clear the multiset, we can add the new elements without initialization.
Example 3
Let's see a simple example to clear the elements of the multiset:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
int n;
multiset<string> m1,m2,m3;
m1 = {"Hello", "World"};
m2 = {"Java", "Program"};
m3 = {"C++", "Coding"};
cout << "m1 group has following members:\n";
for (multiset<string>::iterator it=m1.begin(); it!=m1.end(); ++it)
cout << *it << ' ';
cout << "\n\nm2 group has following members:\n";
for (multiset<string>::iterator it=m2.begin(); it!=m2.end(); ++it)
cout << *it<< ' ';
cout << "\n\nm3 group has following members:\n";
for (multiset<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 above example, there are three groups of multiset and according to the user?s choice one group has been deleted.
Example 4
Let's see a simple example:
#include <iostream>
#include <set>
using namespace std;
int main() {
int n;
multiset<string> fruit = {"Banana","Apple","Orange","Banana"};
cout << "Fruit bucket has following fruits = \n";
for (multiset<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
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
Banana
Orange
Do you want to clear your fruit bucket?
Press 1 for Yes and 0 for No: 1
4 fruits in bucket
In the above example, a fruit multiset is initialized with three fruits. Asking for clear the multiset if you enter 0 then fruit bucket has 4 elements or if you enter 1 then it will clear the fruit multiset and the size becomes 0.