是否可以更改从哪个 "side" 个对象添加到具有相同优先级的优先级队列中?

Is it possible to change from which "side" objects are added in the priority queue with the same priority?

我正在 std::priority_queue 中使用 std::vector 中的一些自定义对象。 现在假设当我调用 top() 函数时我有相同优先级的对象,我按从旧到新的顺序获取它们。 所以我的问题是有没有可能改变这种行为,所以 top() 会 return 在同等优先级的情况下是最近的对象?

一个简单(但有限)的解决方案是保留一个计数器,并使用计数器在插入时的值作为其他相等对象的辅助键。倒数而不是倒数将颠倒优先顺序。

有限,因为计数器可能会回绕,但 long long 风险不大。