CHAPTER9-37.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:1k
源码类别:

STL

开发平台:

C/C++

  1. //文件名:CHAPTER9-37.cpp
  2. #include <set>
  3. #include <iostream>
  4. #if _MSC_VER > 1020   // if VC++ version is > 4.2
  5.    using namespace std;  // std c++ libs implemented in std
  6. #endif
  7. void main( )
  8. {
  9.    set <int>::allocator_type s1_Alloc;
  10.    set <int>::allocator_type s2_Alloc;
  11.    set <double>::allocator_type s3_Alloc;
  12.    set <int>::allocator_type s4_Alloc;
  13.    // The following lines declare objectsthat use the default allocator.
  14.    set <int> s1;
  15.    set <int, allocator<int> > s2;
  16.    set <double, allocator<double> > s3;
  17.    s1_Alloc = s1.get_allocator( );
  18.    s2_Alloc = s2.get_allocator( );
  19.    s3_Alloc = s3.get_allocator( );
  20.    cout << "The number of integers that can be allocated"
  21.         << endl << "before free memory is exhausted: "<< s2.max_size( ) << "." << endl;
  22.    cout << "nThe number of doubles that can be allocated"
  23.         << endl << "before free memory is exhausted: "<< s3.max_size( ) <<  "." << endl;
  24.    // The following line creates a set s4 with the allocator of multiset s1.
  25.    set <int> s4( less<int>( ), s1_Alloc );
  26.    s4_Alloc = s4.get_allocator( );
  27.    // Two allocators are interchangeable ifstorage allocated from each can be
  28.    // deallocated by the other
  29.    if( s1_Alloc == s4_Alloc )
  30.    {
  31.       cout << "nThe allocators are interchangeable." << endl;
  32.    }
  33.    else
  34.    {
  35.       cout << "nThe allocators are not interchangeable." << endl;
  36.    }
  37. }