hash_set::get_allocator
Notes
Cette API est obsolète.L'alternative est unordered_set, classe.
Retourne une copie de l'objet d'allocation utilisé pour créer le hash_set.
Allocator get_allocator( ) const;
Valeur de retour
L'allocateur utilisé par le hash_set gérer la mémoire, soit le paramètre Allocatorde modèle.
Pour plus d'informations sur Allocator, consultez la section Notes de la rubrique de hash_set, classe.
Notes
Allocateurs de la classe de hash_set 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++.
Dans Visual C++ .NET 2003, les membres des fichiers d'en-tête <hash_map> et de <hash_set> ne sont plus dans l'espace de noms standard, mais ont été plutô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 est 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
Header: <hash_set>
Espace de noms : stdext