C++ multiset max_size
C++ Multiset max_size function is used to get the maximum number of size a multiset container can hold.
Syntax
Member type size_type is an unsigned integral type.
size_type max_size() const; // until C++ 11
size_type max_size() const noexcept; //since C++ 11
Parameter
Return value
max_size function returns the maximum allowed length of the multiset container.
Complexity
Constant.
Iterator validity
No changes.
Data Races
The container is accessed.
Concurrently accessing the elements of a multiset container is safe.
Exception Safety
This member function never throws exception.
Example 1
Let's see the simple example to calculate the maximum size of the multiset:
#include <iostream>
#include <set>
using namespace std;
int main()
{
multiset<char> s;
cout << "Maximum size of a 'multiset' is " << s.max_size() << "\n";
return 0;
}
Output:
Maximum size of a 'multiset' is 461168601842738790
In the above example, max_size function returns the maximum size of the multiset.
Example 2
Let's see a simple example:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
int i;
multiset<int> mymultiset;
if (mymultiset.max_size()>1000)
{
for (i=0; i<1000; i++) mymultiset.insert(0);
cout << "The multiset contains 1000 elements.\n";
}
else cout << "The multiset could not hold 1000 elements.\n";
return 0;
}
Output:
The multiset contains 1000 elements.
In the above example, member max_size is used to check beforehand whether the multiset will allow for 1000 elements to be inserted.
Example 3
Let's see a simple example to find the max size of an empty multiset and a non-empty multiset:
#include <set>
#include <iostream>
using namespace std;
int main()
{
// initialize container
multiset<int> mp1, mp2;
mp1 = {1111,1111};
// max size of Non-empty multiset
cout << "The max size of mp1 is " << mp1.max_size();
// max size of Empty-multiset
cout << "\nThe max size of mp2 is " << mp2.max_size();
return 0;
}
Output:
The max size of mp1 is 461168601842738790
The max size of mp2 is 461168601842738790
In the above example, there are two multisets i.e. m1 and m2. m1 is a non-empty multiset and m2 is an empty multiset. But the maximum size of both multisets is the same.
Example 4
Let's see a simple example:
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
typedef multiset<string> city;
string name;
city fmly ;
int n;
cout<<"Enter the number of family members :";
cin>>n;
cout<<"Enter the name of each member: \n";
for(int i =0; i<n; i++)
{
cin>> name; // Get key
fmly.insert(name); // Put them in multiset
}
cout<<"\nTotal number of population of city multiset: "<<fmly.max_size();
cout<<"\nTotal member of family is:"<< fmly.size();
cout<<"\nName of family members: \n";
cout<<"\nName \n ________________________\n";
city::iterator p;
for(p = fmly.begin(); p!=fmly.end(); p++)
{
cout<<(*p)<<" \n ";
}
return 0;
}
Output:
Enter the number of family members: 8
Enter the name of each member:
Ram
Archana
Aman
Nikita
Divya
Amita
Kashish
Ram
Total number of population of city multiset: 461168601842738790
Total member of family is:8
Name of family members:
Name
________________________
Aman
Amita
Archana
Divya
Kashish
Nikita
Ram
Ram
In the above example, the program first creates city multiset interactively with given number of size. Then it displays the total size a city multiset can contain, total size of a fmly and all the names and their age available in the multiset.