set::max_size (STL Sample)

The sample code below illustrates how to use the set::max_size STL function in Visual C++.

Required Header:
<set>

Prototype:

template<class _K, class _Pr, class _A>
     class set
     {
        public:
        // Function 1:
        size_type max_size() const;
     }

Note: The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability.

Description:
The max_size function is used to determine the maximum number of elements the controlled sequence can contain.

Sample Code:

//////////////////////////////////////////////////////////////////////
//
// Compile options needed: -GX
//
// SetMax_size.cpp:
//      Illustrates how to use the max_size function to determine how
//      many elements the controlled sequence can contain.
//
// Functions:
//
//    max_size     Returns the maximum number of elements the controlled
//                 sequence can contain.
//
//////////////////////////////////////////////////////////////////////

#pragma warning(disable:4786)
#include <set>
#include <iostream>
#include <assert.h>

using namespace std ;

typedef set<int> SET_INT;

void main() {
  SET_INT s1;

  cout << "s1.max_size() returned ";
  cout << s1.max_size() << endl;  // 1073741823 [value may vary]
  for (int x=0;(x<1000 && x<s1.max_size());x++)
   assert(s1.insert(x).second);
  cout << "s1.size() returned ";
  cout << s1.size() << endl; // 1000
}

 

Program Output is:


s1.max_size() returned 1073741823
s1.size() returned 1000