【发布时间】:2021-11-13 11:22:45
【问题描述】:
我搜索了类似的内容,但我不明白答案,所以我再次问你。
vector<int> v;
v.push_back(3);
v.push_back(11);
v.push_back(13);
v.push_back(-1);
v.push_back(-8);
v.push_back(324);
v.push_back(55);
sort(v.begin(),v.end(), greater<int>() );
for(auto i : v)
{
cout << i << " ";
}
//结果是降序的
priority_queue<int, vector<int>, greater<int>> pq;
pq.push(3);
pq.push(5);
pq.push(4);
pq.push(9);
pq.push(13);
pq.push(15);
while(!pq.empty())
{
cout << pq.top() << " ";
pq.pop();
}
//结果是升序
这里还有更大的实现
struct greater : public binary_function<_Tp, _Tp, bool>
{
_GLIBCXX14_CONSTEXPR
bool
operator()(const _Tp& __x, const _Tp& __y) const
{ return __x > __y; }
}
x > y 表示下降,但为什么呢?为什么特别是在优先级队列中,更大意味着上升?请有人清楚地澄清这一点。谢谢。
【问题讨论】:
标签: c++ priority-queue