Partager via


multiset::get_allocator

Retourne une copie de l'objet d'allocation utilisé pour construire le multiensemble.

allocator_type get_allocator( ) const;

Valeur de retour

l'allocateur utilisé par le multiensemble.

Notes

Les allocateurs de la classe de multiensemble spécifient comment la classe gère la mémoire.Les allocateurs par défaut fournis avec les classes de conteneurs STL est suffisant pour la plupart des besoins de programmation.Écrire et utiliser votre propre classe d'un allocateur est rubrique avancée C++.

Exemple

// multiset_get_allocator.cpp
// compile with: /EHsc
#include <set>
#include <iostream>

int main( )
{
   using namespace std;
   multiset <int>::allocator_type ms1_Alloc;
   multiset <int>::allocator_type ms2_Alloc;
   multiset <double>::allocator_type ms3_Alloc;
   multiset <int>::allocator_type ms4_Alloc;

   // The following lines declare objects
   // that use the default allocator.
   multiset <int> ms1;
   multiset <int, allocator<int> > ms2;
   multiset <double, allocator<double> > ms3;

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

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

   // The following lines create a multiset ms4
   // with the allocator of multiset ms1
   ms1_Alloc = ms1.get_allocator( );
   multiset <int> ms4( less<int>( ), ms1_Alloc );
   ms4_Alloc = ms4.get_allocator( );

   // Two allocators are interchangeable if
   // storage allocated from each can be
   // deallocated with the other
   if( ms1_Alloc == ms4_Alloc )   
   {
      cout << "Allocators are interchangeable."
           << endl;   
   }
   else   
   {
      cout << "Allocators are not interchangeable."
           << endl;   
   }
}

Résultat de l'exemple

La sortie suivante provient pour x86.

The number of integers that can be allocated
before free memory is exhausted: 1073741823.
The number of doubles that can be allocated
before free memory is exhausted: 536870911.
Allocators are interchangeable.

Configuration requise

en-tête : <set>

l'espace de noms : DST

Voir aussi

Référence

multiset Class

Modèles Standard