取自这里http://www.cplusplus.com/reference/queue/priority_queue/
Compare
A binary predicate that takes two elements (of type T) as arguments and returns a bool.
The expression comp(a,b), where comp is an object of this type and a and b are elements in the container, shall return true if a is considered to go before b in the strict weak ordering the function defines.
在编写比较函数时,有什么方法可以告诉哪个元素在队列中等待的时间更长?
假设每当要插入新元素时都会调用 compare 函数,'a' 是否总是新项目而 'b' 是已经在队列中的元素?或者它的工作方式不同?
我的想法是这样的:
bool my_class::operator()(const my_class &a, const my_class &b) {
//Lower priority comes first
return (a.get_priority() < b.get_priority());
}
当“a”和“b”的优先级相同时,“b”被赋予优先级,因为它在队列中的时间更长。
感谢您对 std::queue 如何工作以及我如何实现目标的任何反馈。