Compartir a través de


map::get_allocator

Devuelve una copia del objeto de asignador utilizado para construir el mapa.

allocator_type get_allocator( ) const;

Valor devuelto

El asignador utilizado por la asignación.

Comentarios

Los asignadores para la clase de mapa 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

// map_get_allocator.cpp
// compile with: /EHsc
#include <map>
#include <iostream>

int main( )
{
   using namespace std;
   map <int, int>::allocator_type m1_Alloc;
   map <int, int>::allocator_type m2_Alloc;
   map <int, double>::allocator_type m3_Alloc;
   map <int, int>::allocator_type m4_Alloc;

   // The following lines declare objects
   // that use the default allocator.
   map <int, int> m1;
   map <int, int, allocator<int> > m2;
   map <int, double, allocator<double> > m3;

   m1_Alloc = m1.get_allocator( );
   m2_Alloc = m2.get_allocator( );
   m3_Alloc = m3.get_allocator( );

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

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

   // The following line creates a map m4
   // with the allocator of map m1.
   map <int, int> m4( less<int>( ), m1_Alloc );

   m4_Alloc = m4.get_allocator( );

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

Resultados del ejemplo

El resultado siguiente es para x86.

The number of integers that can be allocated
before free memory is exhausted: 536870911.

The number of doubles that can be allocated
before free memory is exhausted: 268435455.

The allocators are interchangeable.

Requisitos

encabezado: <Asignar>

espacio de nombres: std

Vea también

Referencia

map Class

Biblioteca de plantillas estándar