Share via


allocator (Clase)

La clase de plantilla describe un objeto que administra la asignación de almacenamiento y la liberación de las matrices de objetos del tipo Type. Un objeto de clase allocator es el objeto predeterminado del asignador especificado en los constructores de varias clases de plantilla de contenedor en la biblioteca estándar de C++.

template <class Type> 
class allocator

Parámetros

  • Tipo
    El tipo de objeto que se está asignando o se desasignando el almacenamiento.

Comentarios

Todos los contenedores de biblioteca de plantillas estándar tienen un parámetro de plantilla como predeterminados para allocator. Fuentes de allocator de la clase de plantilla varias definiciones de tipo que son bastante peatonales. Parecen simplemente digno de definición. Pero otra clase con los mismos miembros podría elegir alternativas más interesantes. Crear un contenedor con un objeto del asignador de esta clase proporciona un control individual sobre la asignación y liberación de los elementos controlados por ese contenedor.

Por ejemplo, un objeto de asignador podría asignar almacenamiento en una pila privada. Puede ser que asigna almacenamiento en un montón far insuficiente, requiriendo a punteros no estándar tener acceso a los objetos asignados. Puede que también especifique, con las definiciones de tipo notifica las fuentes, qué elementos se tiene acceso a través de los objetos de descriptores de acceso especiales que administran la memoria compartida, o realizan la recolección de elementos no utilizados automática. Por consiguiente, una clase que asigna almacenamiento mediante un objeto de asignador debe utilizar estos tipos para declarar el puntero y hacer referencia a objetos, igual que los contenedores de la biblioteca estándar de C++.

Cuando se deriva de la clase del asignador, tiene que proporcionar un struct de reencuaderne , cuyo typedef de _Other hace referencia a la clase nuevo- derivada.

Así, un asignador define los tipos siguientes:

Esta s de Tipoespecifica el formulario que los punteros y las referencias deben tomar para los elementos asignados. (allocator::pointer no es necesariamente igual que Tipo* para todos los objetos de asignador, aunque tiene esta definición obvia para la clase allocator.)

Miembros

Constructores

asignador

Constructores utilizados para crear los objetos de allocator .

Typedefs

const_pointer

Un tipo que proporciona un puntero constante al tipo de objeto que administra el asignador.

const_reference

Un tipo que proporciona una referencia constante al tipo de objeto que administra el asignador.

difference_type

Entero con signo escribe que puede representar la diferencia entre los valores de punteros al tipo de objeto administrado por el asignador.

puntero

Un tipo que proporciona un puntero al tipo de objeto que administra el asignador.

reference

Un tipo que proporciona una referencia al tipo de objeto que administra el asignador.

size_type

Entero sin signo escribe que puede representar la longitud de la secuencia que un objeto de clase de plantilla allocator puede asignar.

value_type

Un tipo que administra el asignador.

Funciones miembro

address

Encuentra la dirección de un objeto cuyo se especifique valor.

asigna

Asigna un bloque de memoria suficientemente grande para almacenar por lo menos un número especificado de elementos.

construcción

Construye un tipo específico de objeto en una dirección especificada que se inicialice con un valor especificado.

desasignar cualquier espacio

Libera un número especificado de objetos inicial de almacenamiento en una posición especificada.

destroy

Llama a objetos destructor sin la desasignación de memoria donde el objeto se almacenado.

max_size

Devuelve el número de elementos de Type tipo que se podrían asignar mediante un objeto de clase allocator antes de que la memoria libre se utilice hacia arriba.

reencuaderne

Una estructura que habilita un asignador para los objetos de un tipo para asignar almacenamiento para los objetos de otro tipo.

Operadores

operator=

Asigna un objeto de allocator a otro objeto de allocator .

Requisitos

Memoria<deHeader: >

Espacio de nombres: std

Vea también

Referencia

Seguridad para subprocesos en la biblioteca estándar de C++

Otros recursos

miembros del asignador

miembros de <memoria>