Q158577: STL Sample for the set::max_size Function

Article: Q158577
Product(s): Microsoft C Compiler
Version(s): winnt:4.2,5.0,6.0
Operating System(s): 
Keyword(s): kbcode kbVC420 kbVC500 kbVC600 kbDSupport
Last Modified: 07-MAY-2001

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual C++, 32-bit Enterprise Edition, versions 4.2, 5.0, 6.0 
- Microsoft Visual C++, 32-bit Professional Edition, versions 4.2, 5.0, 6.0 
- Microsoft Visual C++, 32-bit Learning Edition, version 6.0 
-------------------------------------------------------------------------------

SUMMARY
=======

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

MORE INFORMATION
================

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 may 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.
  // 
  // Written by Derek Jamison
  // of Microsoft Technical Support,
  // Copyright (c) 1996 Microsoft Corporation. All rights reserved.
  ////////////////////////////////////////////////////////////////////// 

  #pragma warning(disable:4786)

  #include <set>
  #include <iostream>
  #include <assert.h>
  using namespace std;

  #if _MSC_VER > 1020   // if VC++ version is > 4.2
     using namespace std;  // std c++ libs implemented in std
     #endif

  typedef set<int,less<int>,allocator<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
--------------

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

REFERENCES
==========

Visual C++ Books Online: Visual C++ Books; C/C++; Standard C++ Library Reference

Additional query words: STL STLSample max_size string

======================================================================
Keywords          : kbcode kbVC420 kbVC500 kbVC600 kbDSupport 
Technology        : kbVCsearch kbAudDeveloper kbVC420 kbVC500 kbVC600 kbVC32bitSearch kbVC500Search
Version           : winnt:4.2,5.0,6.0
Issue type        : kbinfo

=============================================================================