Condividi tramite


Contenitori STL

La (STL) libreria STL (standard template library) fornisce diversi contenitori per archiviare le raccolte di oggetti correlati.I contenitori sono tutte le classi modello, consentendo di specificare quali oggetti sono consentiti nei contenitori.In questo argomento vengono forniti cenni preliminari sui contenitori STL per individuare il contenitore è ottimale per esigenze.

Esistono due raccolte STL tra cui scegliere: nativo STL e STL/CLR.per ulteriori informazioni su STL/CLR, vedere Riferimenti alla libreria STL/CLR.

I contenitori in STL possono essere suddivisi in tre categorie, i contenitori di sequenza, i contenitori associativi e gli adattatori del contenitore.Queste categorie e raccolte che appartengono a ogni categoria, sono riepilogate di seguito.Per informazioni più dettagliate viene trovata nella documentazione di riferimento per i contenitori.

contenitori di sequenza

I contenitori di sequenza mantiene l'ordine originale di elementi inseriti.Ciò consente di specificare dove inserire l'elemento nel contenitore.

deque (il contenitore della coda a due estremità) consente gli inserimenti ed eliminazioni veloci inizio e alla fine del contenitore.È anche possibile accedere in modo casuale rapidamente un elemento.

list il contenitore consente gli inserimenti ed eliminazioni veloci in un punto qualsiasi del contenitore, ma non è possibile accedere a casualmente un elemento nel contenitore.

vector il contenitore si comporta come una matrice, ma automaticamente si amplierà come richiesto.

Per ulteriori informazioni sui contenitori di sequenza, consultare la tabella seguente:

Contenitore

nativo STL

STL/CLR

deque

deque Class

deque (STL/CLR)

list

list Class

list (STL/CLR)

vector

vector Class

vector (STL/CLR)

contenitori associativi

La caratteristica distintiva dei contenitori associativi consiste nel fatto che gli elementi vengono inseriti in un ordine predefinito, come ascensione ordinata.

I contenitori associativi possono essere raggruppate in due sottoinsiemi: mapping e set.In map, talvolta denominata dizionario, è costituito da una coppia chiave/valore.La chiave viene utilizzata per ordinare la sequenza e il valore è piuttosto associato a tale chiave.Ad esempio, a map potrebbe contenere le chiavi rappresentare ogni parola univoco in un testo e i valori che rappresentano il numero di volte in cui la parola viene visualizzata nel testo.In set è semplicemente un ordine crescente contenitore di elementi univoci.

entrambi map e set consentire una sola istanza di una chiave o un elemento da inserire nel contenitore.Se più istanze di elementi sono obbligatorie, utilizzare multimap o multiset.

Sia mapping degli iteratori bidirezionali che supportano di set.per ulteriori informazioni sugli iteratori, vedere Iteratori.

Mentre non ufficialmente parte standard della libreria STL, hash_map e hash_set essere utilizzate comunemente migliorare i tempi di ricerca.Questi contenitori archiviano gli elementi come tabella hash, con ogni voce della tabella contenente un elenco collegato bidirezionale degli elementi.Per garantire tempi trovati più veloci, assicurarsi che algoritmo hash per gli elementi restituisca i valori hash agevolmente distribuiti.

Per ulteriori informazioni sui contenitori associativi, consultare la tabella seguente:

Contenitore

nativo STL

STL/CLR

hash_map

hash_map Class

hash_map (STL/CLR)

hash_multimap

hash_multimap Class

hash_multimap (STL/CLR)

hash_multiset

hash_multiset Class

hash_multiset (STL/CLR)

hash_set

hash_set Class

hash_set (STL/CLR)

map

map Class

map (STL/CLR)

multimap

multimap Class

multimap (STL/CLR)

multiset

multiset Class

multi-insieme (STL/CLR)

set

set Class

set (STL/CLR)

Adattatori del contenitore

Gli adattatori del contenitore vengono semplicemente variazioni di contenitori sopra.Gli adattatori del contenitore non supportano gli iteratori.

priority_queue il contenitore ha organizzato in modo che l'elemento con il valore massimo è sempre primo della coda.

queue il contenitore segue la semantica FIFO (innanzitutto in, innanzitutto out).Il primo elemento inserito (premuto) nella coda è il primo da rimuovere (estratto).

stack il contenitore segue la semantica LIFO (l'ultimo in, innanzitutto out).L'ultimo elemento da inserire (premuto) nello stack è il primo elemento da rimuovere (estratto).

Poiché gli adattatori del contenitore non supportano gli iteratori, non possono essere utilizzati con gli algoritmi STL.per ulteriori informazioni sugli algoritmi, vedere Algoritmi.

Per ulteriori informazioni sugli adattatori del contenitore, consultare la tabella seguente:

Contenitore

nativo STL

STL/CLR

priority_queue

priority_queue Class

priority_queue (STL/CLR)

queue

queue Class

queue (STL/CLR)

stack

stack Class

stack (STL/CLR)

Requisiti per gli elementi contenitore

Gli elementi inseriti in un contenitore STL possono essere di qualsiasi tipo di oggetto che fornisce un costruttore di copia pubblico, un distruttore pubblico e un operatore di assegnazione pubblico.il distruttore non può generare un'eccezione.Inoltre, contenitori associativi come set e map deve avere un operatore di confronto pubblico definito, che è operator< per impostazione predefinita.Alcune operazioni sui contenitori possono inoltre essere necessario un costruttore predefinito pubblico e un operatore equivalente pubblico.

Accedere agli elementi contenitore

Gli elementi dei contenitori si accede utilizzando gli iteratori.Per ulteriori informazioni, vedere Iteratori.

[!NOTA]

È inoltre possibile utilizzare per ognuna di esse, in per scorrere le raccolte STL.Per ulteriori informazioni, vedere Procedura: Scorrere la libreria STL con per ciascuno.

Vedere anche

Riferimenti

Libreria di modelli standard

<sample container>