当我写代码时,我对仿函数的使用感到困惑。
如果我想按降序对整数序列进行排序,我必须greater<int>
输入 的第三个参数sort
,例如sort(v.begin(), v.end(), greater<int>());
.
但是在处理 时priority_queue
,我必须less<int>
输入第三个参数以获得最大顶堆,例如priority_queue< int, vector <int>, less<int> > heap;
.
所以我的问题是为什么我们使用两个不同的函子得到相同的升序关系?
谁能解释为什么会这样?最好使用 STL 实现的源代码让我清楚。
为我糟糕的英语道歉。
非常感谢!