Compartir a través de


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

Vea también

Referencia

set (Clase)

Biblioteca de plantillas estándar