【发布时间】:2019-11-04 08:32:38
【问题描述】:
我正在尝试为 std::proirity_queue 实现我自己的键比较器,如下所示:
funtion insertInPQ(vector<int> nums){
map<int,int> m;
for(int i=0;i<nums.size();i++)
m[nums[i]]++;
auto comp = []( int a, int b )
{
return m[a] < m[b];
};
priority_queue<int, vector<int>, decltype(comp)> pq(comp);
for(auto it=m.begin();it!=m.end();it++)
pq.push(it->first);
}
但它给出的错误:
在 lambda 函数中: 第 10 行:字符 23:错误:将 'const std::map' 作为 'this' 参数传递会丢弃限定符 [-fpermissive] 返回 m[a]
【问题讨论】:
-
funtion是 1. 拼写错误和 2. 不是您在 C++ 中声明函数的方式...
标签: c++ dictionary lambda comparator priority-queue