set::get_allocator
Devuelve una copia del objeto de asignador utilizado para construir el conjunto.
allocator_type get_allocator( ) const;
Valor devuelto
El asignador usado por el conjunto para administrar la memoria, que es el parámetro Allocatorde la plantilla.
Para obtener más información sobre Allocator, vea la sección comentarios de tema de set (Clase) .
Comentarios
Los asignadores para la clase determinada especifican cómo la clase administra el almacenamiento. Los asignadores predeterminados proporcionados con las clases de contenedor de STL son suficientes para la mayoría de programación necesitan. La escritura y using dispone de la clase de asignador es un tema avanzado de C++.
Ejemplo
// set_get_allocator.cpp
// compile with: /EHsc
#include <set>
#include <iostream>
int main( )
{
using namespace std;
set <int>::allocator_type s1_Alloc;
set <int>::allocator_type s2_Alloc;
set <double>::allocator_type s3_Alloc;
set <int>::allocator_type s4_Alloc;
// The following lines declare objects
// that use the default allocator.
set <int> s1;
set <int, allocator<int> > s2;
set <double, allocator<double> > s3;
s1_Alloc = s1.get_allocator( );
s2_Alloc = s2.get_allocator( );
s3_Alloc = s3.get_allocator( );
cout << "The number of integers that can be allocated"
<< endl << "before free memory is exhausted: "
<< s2.max_size( ) << "." << endl;
cout << "\nThe number of doubles that can be allocated"
<< endl << "before free memory is exhausted: "
<< s3.max_size( ) << "." << endl;
// The following line creates a set s4
// with the allocator of multiset s1.
set <int> s4( less<int>( ), s1_Alloc );
s4_Alloc = s4.get_allocator( );
// Two allocators are interchangeable if
// storage allocated from each can be
// deallocated by the other
if( s1_Alloc == s4_Alloc )
{
cout << "\nThe allocators are interchangeable."
<< endl;
}
else
{
cout << "\nThe allocators are not interchangeable."
<< endl;
}
}
Resultados del ejemplo
El siguiente resultado corresponde a 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.
Requisitos
Encabezado: <set>
Espacio de nombres: std