Multiset Max Size Function

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.

Example

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:

Example

#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:

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:

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:

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:

Example

#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:

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:

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:

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.

Input Required

This code uses input(). Please provide values below: