在priority_queue中对<int,int =“”>的情况下确定优先级?

时间:2016-05-19 09:01:27

标签: c++ std priority-queue

如果我们在pair<int, int>中插入priority_queue,那么优先级由哪个元素决定?我们可以决定哪个元素决定优先级吗?

1 个答案:

答案 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) }