Partager via


priority_queue (STL/CLR)

La classe de modèle décrit un objet qui contrôle une séquence ordonnée de longueur variable d'éléments ayant un accès limité. Vous utilisez l'adaptateur priority_queue de conteneur pour gérer un conteneur sous-jacent en file de priorité.

Dans la description ci-dessous, GValue est le même que Value sauf si ce dernier est un type de référence, auquel cas il vaut Value^. De même, GContainer est le même que Container sauf si ce dernier est un type de référence, auquel cas il vaut Container^.

template<typename Value,
    typename Container>
    ref class priority_queue
        System::ICloneable,
        Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
    { ..... };

Paramètres

  • Valeur
    Type d'un élément dans la séquence contrôlée.

  • Conteneur
    Type du conteneur sous-jacent.

Membres

Définition de type

Description

priority_queue : : const_reference (STL/CLR)

Type d'une référence constante à un élément.

priority_queue : : container_type (STL/CLR)

Type du conteneur sous-jacent.

priority_queue : : difference_type (STL/CLR)

Type d'une distance signée entre deux éléments.

priority_queue : : generic_container (STL/CLR)

Le type de l'interface générique pour l'adaptateur de conteneur.

priority_queue : : generic_value (STL/CLR)

Le type d'un élément pour une utilisation avec l'interface générique pour l'adaptateur du conteneur.

priority_queue : : référence (STL/CLR)

Type d'une référence à un élément.

priority_queue : : size_type (STL/CLR)

Type d'une distance signée entre deux éléments.

priority_queue : : value_compare (STL/CLR)

Le délégué de classement pour deux éléments.

priority_queue : : value_type (STL/CLR)

Le type d'un élément.

Méthode

Description

priority_queue : : assignez (STL/CLR)

Remplace tous les éléments.

priority_queue : : vide (STL/CLR)

Teste si aucun élément n'est présent.

priority_queue : : get_container (STL/CLR)

Accède au conteneur sous-jacent.

priority_queue : : son (STL/CLR)

Supprime l'élément de priorité maximale.

priority_queue : : priority_queue (STL/CLR)

Construit un objet container.

priority_queue : : push (STL/CLR)

Ajoute un nouvel élément.

priority_queue : : taille (STL/CLR)

Compte le nombre d'éléments.

priority_queue : : élevé (STL/CLR)

Accède à l'élément ayant la priorité la plus élevée.

priority_queue : : to_array (STL/CLR)

Copie la séquence contrôlée dans un nouveau tableau.

priority_queue : : value_comp (STL/CLR)

Copie le délégué de classement pour deux éléments.

Propriété

Description

priority_queue : : top_item (STL/CLR)

Accède à l'élément ayant la priorité la plus élevée.

Opérateur

Description

priority_queue : : operator= (STL/CLR)

Remplace la séquence contrôlée.

Interfaces

Interface

Description

ICloneable

Dupliquer un objet.

IPriorityQueue<Value, Container>

Conserver l'adaptateur générique de conteneur.

Notes

L'objet alloue et libère le stockage de la séquence qu'il contrôle par un conteneur sous-jacent, de type Container, qui stocke les éléments de Value et s'agrandit à la demande. Il contient la séquence ordonnée en tant que tas, avec l'élément de priorité la plus élevée (l'élément maximal) facilement accessible et amovible. L'objet limite l'accès à l'empilement de nouveaux éléments et le dépilement de l'élément le plus élevé uniquement, implémentant ainsi une file de priorité.

L'objet classifie la séquence qu'il contrôle en appelant un objet délégué stocké de type priority_queue : : value_compare (STL/CLR). Vous pouvez spécifier l'objet délégué stocké lorsque vous construisez la priority_queue; si vous ne spécifiez aucun objet délégué, la valeur par défaut est la comparaison operator<(value_type, value_type). Vous accédez à cet objet stocké en appelant la méthode priority_queue : : value_comp (STL/CLR)().

Un objet délégué de la sorte doit imposer un ordre strict faible sur les valeurs du type priority_queue : : value_type (STL/CLR). Cela signifie, pour deux clés quelconques X et Y:

value_comp()(X, Y) retourne le même résultat booléen à chaque appel.

Si value_comp()(X, Y) est vrai, alors value_comp()(Y, X) doit être faux.

Si value_comp()(X, Y) est vrai, alors on dit que X est trié avant Y.

Si !value_comp()(X, Y) && !value_comp()(Y, X) est vrai, alors X et Y ont un classement équivalent.

Pour n'importe quel élément X qui précède Y dans la séquence contrôlée, key_comp()(Y, X) est faux. (Pour l'objet délégué par défaut, les clés ne perdent jamais en valeur.)

L'élément le plus élevé est l'un des éléments qui n'est classé avant tout autre élément.

Étant donné que le conteneur sous-jacent contient des éléments rangés en tas :

Le conteneur doit prendre en charge les itérateurs à accès aléatoire.

Les éléments d'ordre équivalent peuvent être dépilés dans un ordre différent que celui dans lequel ils ont été empilés. (Le classement n'est pas stable.)

Par conséquent, les candidats pour le conteneur sous-jacent incluent deque (STL/CLR) et vector (STL/CLR).

Configuration requise

En-tête : <cliext/queue>

Espace de noms cliext

Voir aussi

Référence

deque (STL/CLR)

queue (STL/CLR)

stack (STL/CLR)

vector (STL/CLR)

Autres ressources

Référence de bibliothèque STL/CLR