Étant donné que à la fois std::priority_queue
et std::set
(et std::multiset
) sont des conteneurs de données qui stockent des éléments et vous permettent d'y accéder de manière ordonnée, et ont la même complexité d'insertion O(log n)
, quels sont les avantages d'utiliser l'un par rapport à l'autre (ou, dans quelles situations opter pour l'un ou l'autre)?
Je sais que les structures sous-jacentes sont différentes, mais je suis moins intéressé par la différence dans leur implémentation que par la comparaison de leur performance et de leur adéquation pour divers usages.
Note: Je sais pour l'absence de doublons dans un ensemble. C'est pourquoi j'ai également mentionné std::multiset
car il a exactement le même comportement que std::set
mais peut être utilisé lorsque les données stockées sont autorisées à être comparées en tant qu'éléments égaux. Alors s'il vous plaît, ne commentez pas sur le problème des clés uniques/multiples.