Condividi tramite


allocator Class

La classe modello descrive un oggetto che gestisce l'allocazione di archiviazione e liberare per le matrici di oggetti di tipo Tipo.Un oggetto di classe allocator è l'oggetto predefinito di un allocatore specificato nei costruttori per diverse classi modello del contenitore nella libreria C++ standard.

template <class Type> class allocator

Parametri

  • Type
    Il tipo di archiviazione dell'oggetto per il quale viene allocando o rilasciato.

Note

Tutti i contenitori di una libreria di modelli standard hanno un parametro di modello che imposta come valore predefinito a allocator.La classe modello allocator fornisce diverse definizioni dei tipi che sono invece pedonali.Solo sembrano opportuno definire.Ma un'altra classe con gli stessi membri è possibile scegliere le alternative più interessanti.Costruire un contenitore con un oggetto allocatore di tale classe fornisce un singolo controllo sull'allocazione e esente dagli elementi estratti dal contenitore.

Ad esempio, un oggetto allocatore è possibile allocare la memoria in un heap privata.È possibile allocare la memoria rispetto a un heap, richiedente a puntatori non standard per accedere agli oggetti allocati.È inoltre possibile specificare, con definizioni di tipo, che fornisce gli elementi di accedere a particolari oggetti della funzione di accesso che gestisce la memoria condivisa, o esegue la Garbage Collection automatico.Pertanto, la 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, in cui il typedef di _Other fa riferimento alla classe appena derivata.

Pertanto, un allocatore definisce i seguenti tipi:

Questo Tipooggetti specifica la forma dei puntatori e i riferimenti devono adottare per gli elementi allocati.(allocator::pointer non è necessariamente gli stessi Tipo* per tutti gli oggetti di un allocatore, anche se dispone di questa definizione ovvia per classe allocator).

Membri

h8z741y5.collapse_all(it-it,VS.110).gifCostruttori

allocatore

Costruttori utilizzati per creare gli oggetti di allocator.

h8z741y5.collapse_all(it-it,VS.110).gifDefinizioni typedef

const_pointer

Un tipo che fornisce un puntatore costante al tipo di oggetto è gestito da allocatore.

const_reference

Un tipo che fornisce un riferimento costante al tipo di oggetto è gestito da allocatore.

difference_type

Un tipo integrale con segno che può rappresentare la differenza tra i valori dei puntatori al tipo di oggetto è gestito da allocatore.

pointer

Un tipo che fornisce un puntatore al tipo di oggetto è gestito da allocatore.

riferimenti

Un tipo che fornisce un riferimento al tipo di oggetto è gestito da allocatore.

size_type

Un tipo integrale senza segno che può rappresentare la lunghezza di una sequenza che un oggetto classe modello allocator in corso di allocazione.

value_type

Un tipo gestito da allocatore.

h8z741y5.collapse_all(it-it,VS.110).gifFunzioni membro

address

Trova l'indirizzo di un oggetto il cui valore specificato.

allocare

Alloca un blocco di memoria sufficiente per l'archiviazione almeno un numero specificato di elementi.

costrutto

Costruisce un tipo specifico all'oggetto a un indirizzo specificato che viene inizializzato con un valore specificato.

rilasciare

Libera un numero specificato di oggetti dall'inizio di archiviazione a una posizione specificata.

destroy

Chiama un distruttore di oggetti senza rilasciare la memoria in cui l'oggetto è stato archiviato.

max_size

Restituisce il numero di elementi di tipo Type che possono essere allocati da un oggetto di classe allocator prima che la memoria venga esaurita.

riassociare

Una struttura che consente a un allocatore per gli oggetti di un tipo per allocare la memoria per oggetti di un altro tipo.

h8z741y5.collapse_all(it-it,VS.110).gifOperatori

operator=

Assegna un oggetto di allocator a un altro oggetto di allocator.

Requisiti

Header: <memory>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

Thread safety della libreria C++ standard

Altre risorse

membri dell'allocatore

<memoria> membri