cache_suballoc (Clase)
Define un asignador de bloques que asigna y desasigna bloques de memoria de un tamaño único.
Sintaxis
template <std::size_t Sz, size_t Nelts = 20>
class cache_suballoc
Parámetros
Sz
El número de elementos de la matriz que se van a asignar.
Comentarios
La plantilla de clase cache_suballoc almacena bloques de memoria desasignados en una lista libre con longitud ilimitada, mediante freelist<sizeof(Type), max_unbounded>
, y subasigna bloques de memoria de un fragmento mayor asignado con el operador new cuando la lista libre está vacía.
Cada fragmento contiene bytes Sz * Nelts
de memoria utilizable y los datos requeridos por el operador new y el operador delete. Nunca se liberarán los fragmentos asignados.
Constructores
Constructor | Descripción |
---|---|
cache_suballoc | Construye un objeto de tipo cache_suballoc . |
Funciones miembro
Función de miembro | Descripción |
---|---|
allocate | Asigna un bloque de memoria. |
deallocate | Libera un número especificado de objetos del almacenamiento, a partir de la posición especificada. |
Requisitos
Encabezado:<allocators>
Espacio de nombres: stdext
cache_suballoc::allocate
Asigna un bloque de memoria.
void *allocate(std::size_t count);
Parámetros
count
El número de elementos de la matriz que se van a asignar.
Valor devuelto
Un puntero al objeto asignado.
Comentarios
cache_suballoc::cache_suballoc
Construye un objeto de tipo cache_suballoc
.
cache_suballoc();
Comentarios
cache_suballoc::d eallocate
Libera un número especificado de objetos del almacenamiento, a partir de la posición especificada.
void deallocate(void* ptr, std::size_t count);
Parámetros
ptr
Un puntero al primer objeto que se va a desasignar del almacenamiento.
count
El número de objetos que se van a desasignar del almacenamiento.