Classe allocator
La classe template descrive un oggetto che gestisce la disponibilità e l'allocazione di archiviazione per matrici di oggetti di tipo Tipo. Un oggetto di classe allocatore è l'oggetto predefinito di un allocatore specificato nei costruttori per diverse classi modello di contenitore della libreria C++ standard.
template <class Type>
class allocator
Parametri
- Type
Il tipo di archiviazione dell'oggetto per il quale viene allocando o la selezione.
Note
Tutti i contenitori di una libreria di modelli standard hanno un parametro di modello che per impostazione predefinita corrisponde a allocatore. La classe modello allocatore fornisce diverse definizioni dei tipi che sono invece pedonali. Solo sembrano opportuno definire. Ma un'altra classe con gli stessi membri potrebbe scegliere le alternative più interessanti. Costruire un contenitore con un oggetto allocatore di tale classe fornisce un singolo controllo all'allocazione e esente dagli elementi selezionati dal contenitore.
Ad esempio, un oggetto allocatore può allocare l'archiviazione in un heap privata. Può allocare la memoria rispetto a un heap, richiedente a puntatori non standard per accedere agli oggetti allocati. È possibile specificare, con le definizioni dei tipi, che fornisce gli elementi viene eseguito tramite gli oggetti speciali di funzione di accesso che gestisce la memoria condivisa, o esegue la Garbage Collection automatica. Pertanto, una classe che viene allocata la memoria utilizzando un oggetto allocatore deve utilizzare questi tipi per la dichiarazione di oggetti di riferimento e del puntatore, quali i contenitori della libreria C++ standard fanno.
Quando si deriva dalla classe di allocatore, è necessario fornire una struttura di riassociare, il cui typedef di _Other fa riferimento alla classe appena derivata.
Pertanto, un allocatore definisce i seguenti tipi:
puntatore si comporta come un puntatore a Tipo.
const_pointer si comporta come un puntatore const a Tipo.
riferimento si comporta come un riferimento a Tipo.
const_reference si comporta come un riferimento const a Tipo.
Questo Tipos specifica la forma che i puntatori e i riferimenti devono adottare per gli elementi allocati. (allocator::pointer non è necessariamente gli stessi di Tipo* per tutti gli oggetti di un allocatore, anche se dispone di questa definizione ovvia per classe allocatore).
Membri
Costruttori
Costruttori utilizzati per creare gli oggetti di allocator. |
Definizioni typedef
Un tipo che fornisce un puntatore costante al tipo di oggetto è gestito da allocatore. |
|
Un tipo che fornisce un riferimento costante al tipo di oggetto è gestito da allocatore. |
|
Un tipo integrale con segno che può rappresentare la differenza tra i valori dei puntatori al tipo di oggetto è gestito da allocatore. |
|
Un tipo che fornisce un puntatore al tipo di oggetto è gestito da allocatore. |
|
Un tipo che fornisce un riferimento al tipo di oggetto è gestito da allocatore. |
|
Un tipo integrale senza segno che può rappresentare la lunghezza di una sequenza che un oggetto di classe modello allocator può allocare. |
|
Un tipo gestito da allocatore. |
Funzioni del membro
Trova l'indirizzo di un oggetto il cui valore specificato. |
|
Alloca un blocco di memoria sufficiente per l'archiviazione almeno un numero specificato di elementi. |
|
Costruisce un tipo specifico a oggetti a un indirizzo specificato che viene inizializzato con un valore specificato. |
|
Libera un numero specificato di oggetti dall'inizio di archiviazione a una posizione specificata. |
|
Chiama un distruttore di oggetti senza rilasciare la memoria in cui l'oggetto è stato archiviato. |
|
Restituisce il numero di elementi di tipo Type che potrebbe essere allocata da un oggetto classe allocator prima che la memoria venga esaurita. |
|
Una struttura che consente a un allocatore per gli oggetti di un tipo per allocare la memoria per gli oggetti di un altro tipo. |
Operatori
Assegna un oggetto di allocator a un altro oggetto di allocator. |
Requisiti
memoria<diIntestazione: >
Spazio dei nomi: std
Vedere anche
Riferimenti
Sicurezza dei thread nella libreria standard C++