【发布时间】:2013-03-29 04:57:03
【问题描述】:
当使用 std::priority_queue top() 时,它返回一个常量引用。那么有没有办法既可以利用 std::priority_queue 又可以更改 top() 的值?
【问题讨论】:
-
我认为它是一个 const 引用的原因是,如果你可以改变它,你可能会破坏优先级队列的排序。例如,您不能
.pop值,修改它,然后.push重新打开它吗? -
@Xymotech 但是弹出它时我没有得到对该值的引用......
-
哦。那么,从
.top()、.pop()、.push复制一份? -
@Xymotech ......我怎么没想到......你认为我应该用指针代替吗?
-
不,我认为复制和重新推送是一种很好的方法。
标签: c++ c++11 stl constants priority-queue