auto cmp = [] (int x, int y) {return true;};
priority_queue<int, vector<int> , cmp> q;
报错第三个参数失配,需要一个类型,而不是对象。平时用sort直接传cmp习惯了,才发现这类模板尖括号内要传类型,包括set和map。
auto cmp = [] (int x, int y) {return true;};
priority_queue<int, vector<int> , decltype(cmp)> q;
又报错,匿名函数没有默认构造函数,要手动传入对象。
auto cmp = [] (int x, int y) {return true;};
priority_queue<int, vector<int> , decltype(cmp)> q(cmp);
priority_queue, set, map的comp类型一定要有默认构造函数。
标签:queue,return,自定义,int,auto,C++,priority,bug,cmp From: https://www.cnblogs.com/hellozhangjz/p/17191897.html