自动增加类中的变量

时间:2018-02-23 16:16:52

标签: c++ timer priority-queue pairing-heap

所以,我在c ++上编写了一个代码,我正在尝试使用配对堆来实现优先级队列。我希望这个优先级随着时间的推移自动增加,这样如果元素(一个类)已经在堆中,比如5分钟,那么它的优先级(变量)会增加。我不知道如何实现这一目标。

我可以实现一个函数来检查每个元素每个时间段的持续时间,但问题是检查堆中的每个元素是非常困难的。所以我认为我需要在元素中做一些事情,但我不确定是什么以及如何。

有没有简单的解决方案?我觉得我必须遗漏一些东西,但如果情况不是这样,那么我最好放弃这个想法,因为我必须尽快完成这件事。

UP:这个程序是针对人类排队的,所以这个想法的原因是不要让人等待太久。优先级是任意的,每个元素添加时都会设置优先级“级别”,因此优先考虑时间不是我的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以将元素添加到链接列表中:

  1. 新元素将添加到列表的末尾

  2. 当第一个元素在堆中持续5分钟时,它的优先级会增加,并且会移动到列表的末尾。

  3. 这样您只能检查第一个元素。另一个优点是您可以将计时器设置为要检入的第一个元素的值。也就是说,不需要进行不必要的定期检查。