【发布时间】:2012-06-25 21:38:07
【问题描述】:
如果我有一个 STL priority_queue 结构,其中优先级基于结构的某些属性,并且我更改了其中一个结构的属性,这样新的顺序会有所不同,优先级队列是否知道采取本身?还是我必须将其从队列中删除并再次推入?我在某处读到,调用 push() 和 pop() 时排序已完成,但我想确定一下。
【问题讨论】:
-
不!您应该切勿修改
priority_queue(或map或set的键)中值的“优先级”。它不会自行解决。弹出->编辑->推送。 -
如何修改结构?当您将队列推入时,队列会创建一个副本,之后就不应该有真正的方法来获取对队列中项目的引用。
标签: c++ stl priority-queue