Je veux stocker 3 entier en priority_queue. Je sais comment stocker 2 entier.
Je stocke 2 entier avec mon code p> mais je ne sais pas comment puis-je stocker 3 entier . J'ai besoin d'aide. P> Désolé pour mon anglais. P> p> paire
3 Réponses :
Le plus simple serait créer un edit strong>
Code exemple: p> struct code> qui lie logiquement tous les entiers et crée une file d'attente prioritaire de ces objets de structure.
Opérateur << / Code> Ou un fonctionnement de comparaison devrait être spécifié pour
priority_queue code> pour fonctionner avec cette structure.
Je crée la structure mais je ne peux pas pousser les entiers. Comment puis-je pousser les entiers?
Puisque la file d'attente prioritaire trie les éléments afin que le plus grand soit toujours le premier. Dans mon opérateur de comparaison opérateur << / code> de
struct s code> J'ai comparé les éléments basés sur le
int m_n1; code>. Depuis les 3 structures, j'ai ajouté à la file d'attente
S (4,2,3) code> a la valeur la plus élevée pour cet entier, il vient d'abord.
@Elmi: Vous voudrez peut-être faire un lexicographique i> comparer. C'est le type de comparaison avec STD :: paire. Découvrez Stackoverflow.com/Questtions/2500664 .
ou le moyen facile: std :: paire
-1 triplet.second.second code> est une manière terriblement laide et convoluée d'accéder au troisième élément du triplet. Cette solution n'apparaît pas du tout.
Il ne devrait pas être à l'échelle et de toute façon n'est pas moins évolutif les autres solutions (à l'exclusion de Boost / TR1 Tuple). Et ... c'est le plus rapide :) (comme code d'écriture). À propos du laid ... c'est juste faire le travail. Juste mon avis
CProgrammather, c'est bien mieux que la solution choisie pour certaines applications: par exemple une programmation concurrentielle.
Je suppose que vous pouvez utiliser
paire> code> pour stocker 3 entiers, mais ce serait idiot. : P