【发布时间】:2020-10-27 15:21:46
【问题描述】:
我想对map<pair<string, int>, int> dbg 进行排序;使用 lambda 按值:
为此我有
void test()
{
map<pair<string, int>, int> dbg;
sort( dbg.begin(), dbg.end(),
[]( pair<pair<string, int>, int>& lht, pair<pair<string, int>, int>& rht) {
return lht.second > rht.second;
});
}
但是编译失败并出现很多错误。这里正确的 lamda 原型是什么?
【问题讨论】:
-
如果您不是
using namespace std;(you shouldn't be),那么您将缺少大量std::命名空间前缀。另外,你应该声明你的参数const;毕竟你并没有改变它们。