Partager via


Conteneurs STL

La bibliothèque (STL) de modèles Standard fournit plusieurs conteneurs pour stocker des collections d'objets connexes.Les conteneurs sont toutes les classes de modèle, ce qui vous permet de spécifier quels objets sont autorisés dans les conteneurs.Cette rubrique fournit une vue d'ensemble des conteneurs STL pour vous aider à déterminer quel conteneur est le mieux à vos besoins.

Il existe deux bibliothèques STL à choisir de : natif STL et STL/CLR.Pour plus d'informations sur STL/CLR, consultez Référence de bibliothèque STL/CLR.

Les conteneurs dans STL peuvent être divisées en trois catégories, conteneurs de séquence, conteneurs associatifs, et adaptateurs du conteneur.Ces catégories, et des collections qui appartiennent à chaque catégorie, sont présentées ici.Informations plus détaillées se trouvent dans la documentation de référence pour les conteneurs.

conteneurs de séquence

Les conteneurs de séquence conservent l'ordre d'origine des éléments insérés.Cela vous permet de spécifier où insérer l'élément dans le conteneur.

Le conteneur d' deque (file d'attente double) autorise les insertions et des suppressions rapides au début et à la fin de le conteneur.Vous pouvez également accéder aléatoirement à tout élément rapidement.

Le conteneur d' list autorise les insertions et des suppressions rapides n'importe où dans le conteneur, mais vous ne pouvez pas accéder directement un élément dans le conteneur.

Le conteneur d' vector se comporte comme un tableau, mais se développe automatiquement au besoin.

pour plus d'informations sur les conteneurs de séquence, consultez le tableau suivant :

Conteneur

natif STL

STL/CLR

deque

deque Class

deque (STL/CLR)

list

list Class

list (STL/CLR)

vector

vector Class

vector (STL/CLR)

conteneurs associatifs

La caractérisés des conteneurs associatifs est que les éléments sont insérés dans un ordre prédéfinie, telle que l'ordre trié.

Les conteneurs associatifs peuvent être regroupés en deux sous-ensembles : mappages et jeux.map, parfois appelée génération d'un dictionnaire, se compose d'une paire clé/valeur.La clé est utilisée pour trier la séquence, et la valeur est d'une façon ou associée à cette clé.Par exemple, map peut contenir des clés représentant chaque mot unique dans un texte et des valeurs représentant le nombre de fois que le mot apparaît dans le texte.set est simplement un conteneur croissant des éléments uniques.

map et set permettent une seule instance d'une clé de l'élément ou à insérer dans le conteneur.Si plusieurs instances des éléments sont obligatoires, utilisez multimap ou multiset.

Mappages et itérateurs bidirectionnelles de support de jeux.Pour plus d'informations sur les itérateurs, consultez l' Itérateurs.

Pendant que pas officiellement partie de la norme STL, hash_map et hash_set sont généralement utilisés pour améliorer rechercher des heures.Ces conteneurs stockent leurs éléments en tant que table de hachage, chaque entrée de table contenant une liste liée bidirectionnelle d'éléments.Pour vérifier que les temps de recherche les plus rapides, assurez -vous que l'algorithme de hachage pour vos éléments retourne des valeurs de hachage également distribuées.

pour plus d'informations sur les conteneurs associatifs, consultez le tableau suivant :

Conteneur

natif 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

mappage multiple (STL/CLR)

multiset

multiset Class

multiensemble (STL/CLR)

set

set Class

set (STL/CLR)

adaptateurs de conteneur

Les adaptateurs du conteneur sont simplement des modifications dans les conteneurs ci-dessus.Les adaptateurs du conteneur ne prennent pas en charge les itérateurs.

Le conteneur d' priority_queue a planifié sorte que l'élément avec la valeur la plus élevée est toujours premier dans la file d'attente.

Le conteneur d' queue suit la sémantique FIFO (premier dans, en premier).Le premier élément inséré (enfoncé) dans la file d'attente est le premier à supprimer (dépilé).

Le conteneur d' stack suit la sémantique LIFO (dernier dans, en premier).Le dernier élément à insérer (enfoncé) sur la pile est le premier élément à supprimer (dépilé).

Étant donné que les adaptateurs du conteneur ne prennent pas en charge les itérateurs, ils ne peuvent pas être utilisés avec les algorithmes STL.Pour plus d'informations sur les algorithmes, consultez l' Algorithmes.

pour plus d'informations sur les adaptateurs de conteneur, consultez le tableau suivant :

Conteneur

natif STL

STL/CLR

priority_queue

priority_queue Class

priority_queue (STL/CLR)

queue

queue Class

queue (STL/CLR)

stack

stack Class

stack (STL/CLR)

Spécifications pour les éléments conteneurs

Les éléments insérés dans un conteneur STL peuvent être de tout type d'objet qui fournit un constructeur de copie public, un destructeur public, et un opérateur d'assignation public.Le destructeur ne peut pas lever d'exception.en outre, les conteneurs associatifs tels qu' set et l' map doivent avoir un opérateur de comparaison public défini, qui est operator< par défaut.Certaines opérations sur les conteneurs peuvent également requérir un constructeur public par défaut et un opérateur d'équivalence public.

éléments conteneur de accès

Les éléments des conteneurs sont accessibles à l'aide de les itérateurs.Pour plus d'informations, consultez Itérateurs.

[!REMARQUE]

Vous pouvez également utiliser pour chaque, dans pour itérer au sein de les collections STL.Pour plus d'informations, consultez Comment : Itérez au sein de la collection STL avec pour chaque.

Voir aussi

Référence

Modèles Standard

<sample container>