如果我们在pair<int, int>
中插入priority_queue
,那么优先级由哪个元素决定?我们可以决定哪个元素决定优先级吗?
答案 0 :(得分:3)
是的,您可以使用Compare
的{{1}}模板参数提供自己的比较器。默认情况下,priority_queue
默认为Compare
,其中std::less<T>
是元素类型,这会导致在对上调用T
运算符,其专门用作:
<
以下是如何使用其他比较器的示例:
template <class T1, class T2>
bool operator<(const pair<T1, T2>& x, const pair<T1, T2>& y)
{ return x.first < y.first || (!(y.first < x.first) && x.second < y.second) }