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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER9-38.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. int main( )
  8. {
  9.    multiset <int>::allocator_type ms1_Alloc;
  10.    multiset <int>::allocator_type ms2_Alloc;
  11.    multiset <double>::allocator_type ms3_Alloc;
  12.    multiset <int>::allocator_type ms4_Alloc;
  13.    // The following lines declare objects that use the default allocator.
  14.    multiset <int> ms1;
  15.    multiset <int, allocator<int> > ms2;
  16.    multiset <double, allocator<double> > ms3;
  17.    cout << "The number of integers that can be allocated"
  18.         << endl << "before free memory is exhausted: "<< ms2.max_size( ) << "." << endl;
  19.    cout << "The number of doubles that can be allocated"
  20.         << endl << "before free memory is exhausted: "<< ms3.max_size( ) <<  "." << endl;
  21.    // The following lines create a multiset ms4 with the allocator of multiset ms1
  22.    ms1_Alloc = ms1.get_allocator( );
  23.    multiset <int> ms4( less<int>( ), ms1_Alloc );
  24.    ms4_Alloc = ms4.get_allocator( );
  25.    // Two allocators are interchangeable if storage allocated from each can be
  26.    // deallocated with the other
  27.    if( ms1_Alloc == ms4_Alloc )   
  28.    {
  29.       cout << "Allocators are interchangeable." << endl;   
  30.    }
  31.    else   
  32.    {
  33.       cout << "Allocators are not interchangeable." << endl;   
  34.    }
  35. }