为什么 maxHeap 初始化语法通过 priority_queue 与 minHeap 不同?

问题描述

我试图使用常规语法创建一个 minHeap,但发现

maxHeap 初始化为:

priority_queue<int> maxHeap;

而 minHeap 初始化为:

priority_queue<int,vector<int>,greater<int>> minHeap;

知道为什么在 C++ 中会这样吗?如果 minHeap 和 maxHeap 使用类似的语法初始化,可能会更容易记住。

解决方法

priority_queue 默认为最大堆,所以 priority_queue<int>priority_queue<int,vector<int>,less<int>> 的简写,它确实匹配最小堆语法