Partager via


hash_set::get_allocator

[!REMARQUE]

Cette API est obsolète.l'alternative est unordered_set Class.

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

Allocator get_allocator( ) const;

Valeur de retour

L'allocateur utilisé par le hash_set pour gérer la mémoire, qui est le paramètre Allocatorde modèle.

Pour plus d'informations sur Allocator, consultez la section Notes de la rubrique de hash_set Class .

Notes

Les allocateurs de la classe de hash_set 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++.

Dans Visual C++ .NET 2003, les membres des fichiers d'en-tête de <hash_map> et de <hash_set> ne sont plus dans l'espace de noms de DST, mais plutôt ont été déplacés dans l'espace de noms de stdext.Pour plus d'informations, consultez The stdext Namespace.

Exemple

// hash_set_get_allocator.cpp
// compile with: /EHsc
#include <hash_set>
#include <iostream>

int main( )
{
   using namespace std;
   using namespace stdext;

   // The following lines declare objects
   // that use the default allocator.
   hash_set <int, hash_compare <int, less<int> > > hs1;
   hash_set <int,  hash_compare <int, greater<int> > > hs2;
   hash_set <double, hash_compare <double,
      less<double> >, allocator<double> > hs3;

   hash_set <int, hash_compare <int,
      greater<int> > >::allocator_type hs2_Alloc;
   hash_set <double>::allocator_type hs3_Alloc;
   hs2_Alloc = hs2.get_allocator( );

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

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

   // The following lines create a hash_set hs4
   // with the allocator of hash_set hs1.
   hash_set <int>::allocator_type hs4_Alloc;
   hash_set <int> hs4;
   hs4_Alloc = hs2.get_allocator( );

   // Two allocators are interchangeable if
   // storage allocated from each can be
   // deallocated by the other
   if( hs2_Alloc == hs4_Alloc )
   {
      cout << "The allocators are interchangeable."
           << endl;
   }
   else
   {
      cout << "The 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.
The allocators are interchangeable.

Configuration requise

en-tête : <hash_set>

Stdext del'espace de noms :

Voir aussi

Référence

hash_set Class

Modèles Standard