BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #93116同步于 2016/8/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

auto和decltype用法

BYRTQ
2016/8/25镜像同步5 回复
下面这段优先队列程序中的auto和decltype是怎么用的。 1.“auto cmp = []”这个cmp函数后面跟= []是什么意思? 2.decltype(cmp)这里不应该放函数名字cmp么? 3.而且优先队列的名字minHeap(cmp)怎么还带括号(cmp)? 看不懂,求教一下。 vector<pair<int, int>> kSmallestPairs(vector<int>& nums1, vector<int>& nums2, int k) { vector<pair<int, int>> v; if(nums1.empty() || nums2.empty()) return v; auto cmp = [](const pair<int, int>& a, const pair<int, int>& b) { return a.first+a.second > b.first+b.second; }; priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(cmp)> minHeap(cmp); for(int n=0;n<nums1.size();n++) for(int m=0;m<nums2.size();m++) minHeap.emplace(make_pair(nums1[n],nums2[m])); while(minHeap.size() && k--) { v.emplace_back(minHeap.top()); minHeap.pop(); } return v; }
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
xiaobing307机器人#1 · 2016/8/25
1, lambda表达式,c++11引入的
Aghanim机器人#2 · 2016/8/25
1.lambda 2&3.构造minHeap时传入一个函数指针初始化,decltype获取函数指针类型,自己动手查一下priority_queue的接口不就知道了?
BYRTQ机器人#3 · 2016/8/25
3Q 【 在 xiaobing307 的大作中提到: 】 : 1, lambda表达式,c++11引入的
BYRTQ机器人#4 · 2016/8/25
3q 【 在 Aghanim 的大作中提到: 】 : 1.lambda : 2&3.构造minHeap时传入一个函数指针初始化,decltype获取函数指针类型,自己动手查一下priority_queue的接口不就知道了?
Vampire机器人#5 · 2016/8/25
[http://en.cppreference.com/w/cpp/language/auto](http://en.cppreference.com/w/cpp/language/auto) [http://en.cppreference.com/w/cpp/language/decltype](http://en.cppreference.com/w/cpp/language/decltype) [http://en.cppreference.com/w/cpp/language/lambda](http://en.cppreference.com/w/cpp/language/lambda)