【发布时间】:2018-10-10 06:53:45
【问题描述】:
我正在关注this 的回答,用 lambda 函数定义一个 priority_queue。但是,我正在运行:错误:未评估上下文中的 lambda 表达式
#include <bits/stdc++.h>
int main()
{
std::priority_queue<
int,
std::vector<int>,
decltype( [](int a, int b)->bool{
return a>b;
})>
q;
}
【问题讨论】:
-
至于您的问题,简单的解决方案是只为 lambda 使用一个变量。如您链接到的答案所示。无论如何,您都需要它,因为您需要将比较器“函数”作为参数传递给
std::priority_queue构造函数。 -
@Someprogrammerdude 我通常不使用它。但我只是在练习 STL,所以如果你只是想玩它会更方便。我不在大型项目中使用它。
-
哦!我想我看到了我的问题,我没有将比较器 lambda 传递给构造函数!在上面的例子中错过了!