priority_queue
这是力扣347. 前 K 个高频元素 中官方c++题解的一段代码
https://leetcode.cn/problems/top-k-frequent-elements/solution/qian-k-ge-gao-pin-yuan-su-by-leetcode-solution/
想问一下其中“decltype(&cmp)> q(cmp)” 是什么用法,为什么它写在priority_queue
我理解decltype(cmp)= x 但这里的decltype(&cmp)>q(cmp)是什么意思?
priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(&cmp)> q(cmp);
你看错了 . 后面cmp是在priority_queue模板参数之内。
decltype是类型推导,也就是说把cmp这个函数的类型 付给priority_queue最后一个模板参数
函数指针,自动推断类型,这样写也是可以的
priority_queue<pair<int, int>,vector<pair<int, int>>,
function<bool(const pair<int,int>&,const pair<int,int>&)>> p(cmp);