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:
puntero se comporta como un puntero a Tipo.
const_pointer se comporta como un puntero const a Tipo.
referencia se comporta como una referencia a Tipo.
const_reference se comporta como una referencia const a Tipo.
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
Constructores utilizados para crear los objetos de allocator . |
Typedefs
Un tipo que proporciona un puntero constante al tipo de objeto que administra el asignador. |
|
Un tipo que proporciona una referencia constante al tipo de objeto que administra el asignador. |
|
Entero con signo escribe que puede representar la diferencia entre los valores de punteros al tipo de objeto administrado por el asignador. |
|
Un tipo que proporciona un puntero al tipo de objeto que administra el asignador. |
|
Un tipo que proporciona una referencia al tipo de objeto que administra el asignador. |
|
Entero sin signo escribe que puede representar la longitud de la secuencia que un objeto de clase de plantilla allocator puede asignar. |
|
Un tipo que administra el asignador. |
Funciones miembro
Encuentra la dirección de un objeto cuyo se especifique valor. |
|
Asigna un bloque de memoria suficientemente grande para almacenar por lo menos un número especificado de elementos. |
|
Construye un tipo específico de objeto en una dirección especificada que se inicialice con un valor especificado. |
|
Libera un número especificado de objetos inicial de almacenamiento en una posición especificada. |
|
Llama a objetos destructor sin la desasignación de memoria donde el objeto se almacenado. |
|
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. |
|
Una estructura que habilita un asignador para los objetos de un tipo para asignar almacenamiento para los objetos de otro tipo. |
Operadores
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++