所以,我正在用 C++ 编写一件事,我正在尝试用配对堆实现一个优先级队列。我希望这个优先级随着时间的推移自动增加,这样如果元素(一个类)在堆中已经存在了 5 分钟,它的优先级(一个变量)就会增加。我不知道如何做到这一点。
我可以实现一个函数,在每个设定的时间内检查每个元素的持续时间,但问题是检查堆中的每个元素非常困难。所以我认为我需要在元素中做一些事情,但我不确定是什么以及如何做。
有什么简单的解决方案吗?我觉得我一定是错过了什么,但如果不是这样,那我最好放弃这个想法,因为我必须尽快完成这件事。
UP:这个程序是为人类排队的,所以这个想法的原因是不要让人们等待太久。优先级是任意的,添加每个元素时都会为每个元素设置优先级“级别”,因此将时间设为优先级不是我的解决方案。