queue, classe
Une classe d'adaptateur au conteneur de modèle qui fournit une restriction de fonctionnalités pour un certain type de conteneur sous-jacent, limitant l'accès aux éléments de front et de back. Des éléments peuvent être ajoutés en back ou supprimés du front, et des éléments peuvent être inspectés à chaque extrémité de la file d'attente.
template <
class Type,
class Container = deque<Type>
>
class queue
Paramètres
Type
Le type de données de l'élément à stocker dans la file d'attente.Container
Le type de conteneur sous-jacent utilisé pour implémenter la file d'attente.
Notes
Les éléments de la classe Type stipulés dans le premier paramètre de modèle d'un objet de fin sont similaires à une value_type et doivent correspondre au type d'élément dans la classe de conteneur sous-jacent Container stipulé par le deuxième paramètre de modèle. Le Type doit être assignable, afin qu'il soit possible de copier des objets de ce type et d'affecter des valeurs aux variables de ce type.
Les classes de conteneur sous-jacentes appropriées pour la file d'attente sont deque et liste, ou tout autre conteneur de séquences qui prend en charge des opérations de front, de back, de push_back, et de pop_front. La classe de conteneur sous-jacente est encapsulée dans l'adaptateur de conteneur, qui expose uniquement l'ensemble limité des fonctions membres du conteneur de séquences en tant qu'interface publique.
Les objets de fin sont comparables en égalité si et seulement si les éléments de la classe Type sont comparables en égalité, et sont moins que comparables si et seulement si les éléments de la classe Type sont moins que comparables.
Il existe trois types d'adaptateurs de conteneur définis par le STL : pile, file d'attente, et priority_queue. Chacun limite la fonctionnalité d'une certaine classe de conteneurs sous-jacente pour fournir une interface contrôlée avec précision à une structure de données standard.
La classe de pile prend en charge une structure de données dernière-entrée et première-sortie (LIFO). Une bonne analogie à garder à l'esprit serait de la comparer à une pile d'assiettes. Les éléments (les assiettes) peuvent être insérés, inspectés, ou supprimés uniquement depuis le haut de la pile, qui est le dernier élément à la fin du conteneur de base. La raison pour laquelle on utilise une classe de pile est la restriction à accéder seulement à l'élément supérieur.
La classe de file d'attente prend en charge une structure de données première-entrée, première-sortie (FIFO). Une bonne analogie à garder à l'esprit serait des personnes faisant la queue devant un guichet. Les éléments (les personnes) peuvent être ajoutés à la fin de la ligne et sont supprimés au début de la ligne. L'avant et l'arrière d'une ligne peuvent tous les deux être inspectés. La raison pour laquelle on utilisate la classe de file d'attente est la restriction à accéder de cette manière uniquement aux éléments de début et de fin.
La classe de priority_queue classe ses éléments afin que le plus grand élément soit toujours au dessus. Il prend en charge l'insertion d'un élément, et l'inspection et la suppression de l'élément du dessus. Une bonne analogie à garder à l'esprit serait des personnes s'alignant de manière à être rangés par âge, par taille, ou suivant tout autre critère.
Constructeurs
Construit une queue qui est vide ou qui est une copie d'un objet conteneur de base. |
Typedef
Type qui contient le conteneur de base devant être adapté par la queue. |
|
Un type d'entier non signé qui peut représenter le nombre d'éléments dans une queue. |
|
Un type qui représente le type d'objet stocké comme élément dans la queue. |
Fonctions membres
Retourne une référence au dernier élément ajouté le plus récemment à l'arrière d'une queue. |
|
Vérifie que la queue est vide. |
|
Retourne une référence au premier élément, à l'avant de la queue. |
|
Supprime un élément de l'avant de la queue. |
|
Ajoute un élément à la fin de la queue. |
|
Retourne le nombre d'éléments figurant dans le queue. |
Configuration requise
En-tête: <File d'attente>
Espace de noms : std