Partager via


priority_queue Class

Une classe d'adaptateur de conteneur de modèle qui fournit une restriction de fonctionnalité restriction de l'accès à l'élément supérieur d'un certain type sous-jacent de conteneur, qui est toujours le plus grand ou le plus élevée.De nouveaux éléments peuvent être ajoutés au priority_queue et l'élément supérieur du priority_queue peut être examiné ou supprimé.

template <
   class Type, 
   class Container=vector<Type>,
   class Compare=less<typename Container::value_type> 
>
class priority_queue

Paramètres

  • Tapez
    Le type de données d'élément à stocker dans le priority_queue.

  • Container
    Le type du conteneur sous-jacent utilisé pour implémenter le priority_queue.

  • Comparaison
    Le type qui fournit un objet de fonction qui peut comparer deux valeurs d'élément comme clés de tri pour déterminer leur commande relative dans le priority_queue.Cet argument est facultatif et conteneurbinaire**::value_type**de lessle*<typename> d'* attribut est la valeur par défaut.

Notes

Les éléments de la classe Type stipulés dans le premier paramètre de modèle d'un objet fin sont synonymes de value_type et doivent correspondre au type d'élément de la classe de conteneur sous-jacente Conteneur stipulé par le second paramètre de modèle.Type Doit être assignable, afin qu'il soit possible de copier des objets de ce type et d'assigner des valeurs aux variables de ce type.

Le priority_queue classe la séquence qu'il contrôle en appelant un objet stocké de fonction de classe Traits.En général les éléments doivent être simplement moins que comparables pour générer cette commande : afin que, avec deux éléments quelconques, il puisse déterminer l'un ou l'autre qu'ils sont équivalents (dans le sens que ni l'un ni l'autre n'est inférieure à l'autre) ou qu'il est inférieure à l'autre.Cela provoque le classement entre les éléments d'inégalité.En plus de la note technique, la fonction de comparaison est un attribut binaire qui induit le classement faible strict dans le sens mathématiques standard.

Les classes de conteneur sous-jacentes appropriées pour le priority_queue incluent classe de deque et classe vectorielle par défaut ou tout autre conteneur de séquence qui prend en charge les opérations d' front, push_back, et pop_back et un itérateurs d'accès aléatoire.La classe de conteneur sous-jacente est encapsulée dans l'adaptateur de conteneur, qui expose uniquement le jeu limité de fonctions membres de conteneur de séquence comme interface publique.

Ajouter des éléments à et supprimer des éléments d' priority_queue les deux ont la complexité logarithmique.L'accès aux éléments dans priority_queue a la complexité constante.

Il existe trois types d'adaptateurs de conteneur définis par la bibliothèque STL : pile, file d'attente, et priority_queue.Chaque restreint les fonctionnalités d'une classe de conteneur sous-jacente pour fournir une interface avec précision contrôlée à une structure de données standard.

  • classe de pile prend en charge une structure de données dernière entrée et première - integration (LIFO).Un bon analogue à tenir compte est une pile de plats.Les éléments (plats) peuvent être insérés, examinés, ou supprimés uniquement du haut de la pile, qui est le dernier élément à la fin de le conteneur de base.La restriction à accéder à l'élément de niveau supérieur est la raison de l'utilisation de la classe de pile.

  • classe de file d'attente prend en charge un premier entré, premier sorti structure de données (FIFO).Un bon analogue à ne pas oublier serait des personnes alignant pour un guichetier.Les éléments (personnes) peuvent être ajoutés au arrière de la ligne et sont supprimés de devant de la ligne.L'avant et en arrière d'une ligne peuvent être examinés.La restriction à accéder uniquement aux éléments avant et arrière est ainsi la raison de l'utilisation de la classe de file d'attente.

  • La classe de priority_queue classe ses éléments afin que le plus grand élément soit toujours à la position supérieure.Il prend en charge l'implémentation d'un élément et l'inspection et la suppression de l'élément supérieur.Un bon analogue à ne pas oublier serait des personnes alignant où ils sont disposés par âge, hauteur, ou un autre critère.

4ef4dae9.collapse_all(fr-fr,VS.110).gifConstructeurs

priority_queue

Construit priority_queue qui est vide ou qui est une copie d'une plage d'un objet conteneur de base ou l'autre priority_queue.

4ef4dae9.collapse_all(fr-fr,VS.110).gifTypedef

container_type

Un type qui fournit le conteneur de base à adapter par priority_queue.

size_type

Un type d'entier non signé qui peut représenter le nombre d'éléments dans priority_queue.

value_type

Un type qui représente le type d'objet stocké comme un élément dans priority_queue.

4ef4dae9.collapse_all(fr-fr,VS.110).gifFonctions membres

empty

Teste si priority_queue est vide.

pop

Supprime le plus grand élément d' priority_queue de la position supérieure.

push

Ajoute un élément à la file d'attente de priorité selon la priorité de l'élément de l'operator<.

taille

Retourne le nombre d'éléments dans priority_queue.

top

Retourne une référence const au plus grand élément en haut de priority_queue.

Configuration requise

Header: <queue>

l'espace de noms : DST

Voir aussi

Référence

Sécurité des threads dans la bibliothèque C++ standard

Modèles Standard