问题描述
我试图使用常规语法创建一个 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>>
的简写,它确实匹配最小堆语法