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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER10-40.cpp
  2. #include <map>
  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.    multimap <int, int>::allocator_type m1_Alloc;
  10.    multimap <int, int>::allocator_type m2_Alloc;
  11.    multimap <int, double>::allocator_type m3_Alloc;
  12.    multimap <int, int>::allocator_type m4_Alloc;
  13.    // The following lines declare objects that use the default allocator.
  14.    multimap <int, int> m1;
  15.    multimap <int, int, allocator<int> > m2;
  16.    multimap <int, double, allocator<double> > m3;
  17.    m1_Alloc = m1.get_allocator( );
  18.    m2_Alloc = m2.get_allocator( );
  19.    m3_Alloc = m3.get_allocator( );
  20.    cout << "The number of integers that can be allocated"<< endl 
  21. << "before free memory is exhausted: "<< m2.max_size( ) << ".n" << endl;
  22.    cout << "The number of doubles that can be allocated"<< endl 
  23. << "before free memory is exhausted: " << m3.max_size( ) <<  ".n" << endl;
  24. // The following line creates a multimap m4 with the allocator of multimap m1.
  25.    map <int, int> m4( less<int>( ), m1_Alloc );
  26.    m4_Alloc = m4.get_allocator( );
  27.    // Two allocators are interchangeable if storage allocated from 
  28. // each can be deallocated via the other
  29.    if( m1_Alloc == m4_Alloc )
  30.    {      cout << "The allocators are interchangeable."<< endl;   }
  31.    else   
  32.    {      cout << "The allocators are not interchangeable." << endl;   }
  33. }