Partager via


multimap::get_allocator

Retourne une copie de l'objet d'allocation utilisé pour créer le mappage multiples.

allocator_type get_allocator( ) const;

Valeur de retour

L'allocateur utilisé par le mappage multiples.

Notes

Allocateurs de la classe de mappage plusieurs indiquer comment la classe gère le stockage. Allocateurs par défaut fournis par les classes de conteneurs STL de est suffisant pour la plupart des besoins de programmation. Écrire et utiliser votre propre classe d'allocateur est une rubrique avancé C++.

Exemple

// multimap_get_allocator.cpp
// compile with: /EHsc
#include <map>
#include <iostream>

int main( )
{
   using namespace std;
   multimap <int, int>::allocator_type m1_Alloc;
   multimap <int, int>::allocator_type m2_Alloc;
   multimap <int, double>::allocator_type m3_Alloc;
   multimap <int, int>::allocator_type m4_Alloc;

   // The following lines declare objects
   // that use the default allocator.
   multimap <int, int> m1;
   multimap <int, int, allocator<int> > m2;
   multimap <int, double, allocator<double> > m3;

   m1_Alloc = m1.get_allocator( );
   m2_Alloc = m2.get_allocator( );
   m3_Alloc = m3.get_allocator( );

   cout << "The number of integers that can be allocated"
        << endl << "before free memory is exhausted: "
        << m2.max_size( ) << ".\n" << endl;

   cout << "The number of doubles that can be allocated"
        << endl << "before free memory is exhausted: "
        << m3.max_size( ) <<  ".\n" << endl;

   // The following line creates a multimap m4
   // with the allocator of multimap m1.
   map <int, int> m4( less<int>( ), m1_Alloc );

   m4_Alloc = m4.get_allocator( );

   // Two allocators are interchangeable if
   // storage allocated from each can be
   // deallocated via the other
   if( m1_Alloc == m4_Alloc )
   {
      cout << "The allocators are interchangeable."
           << endl;
   }
   else   
   {
      cout << "The allocators are not interchangeable."
           << endl;
   }
}

Résultat de l'exemple

La sortie suivante est pour x86.

The number of integers that can be allocated
before free memory is exhausted: 536870911.

The number of doubles that can be allocated
before free memory is exhausted: 268435455.

The allocators are interchangeable.

Configuration requise

En-tête : <mappage>

Espace de noms : std

Voir aussi

Référence

multimap, classe

Bibliothèque STL (Standard Template Library)