由于std::priority_queue
和std::set
(and std::multiset
) 都是存储元素并允许您以有序方式访问它们的数据容器,并且具有相同的插入复杂性O(log n)
,因此使用一个比另一个有什么优势(或者,什么样的情况需要一个还是其他?)?
虽然我知道底层结构是不同的,但我对它们实现的差异并不感兴趣,而是对它们的性能和对各种用途的适用性进行比较。
注意:我知道集合中的无重复项。这就是我还提到的原因,std::multiset
因为它具有与 完全相同的行为,std::set
但可以在允许将存储的数据作为相等元素进行比较的情况下使用。所以请不要评论单/多键问题。