我正在尝试使用 lambda 对数组进行排序以在比较函数中使用另一个数组。在一个更大的函数中,我有这个代码:
std::sort(arr.begin(), arr.end(),[] (int& a, int& b)
{
return (*i)[a] < (*i)[b];
});
我在包含函数中收到以下错误:
mcmc.cpp:139: error: expected primary-expression before ‘[’ token
mcmc.cpp:139: error: expected primary-expression before ‘]’ token
mcmc.cpp:139: error: expected primary-expression before ‘int’
mcmc.cpp:139: error: expected primary-expression before ‘int’
编译时,我也包括了 -std=c++0x 选项。
我对正在发生的事情感到困惑。出于某种原因,它似乎不认为我的语法是有效的。为了以防万一,我做了一个 yum 更新,但它似乎仍然无法识别 lambdas 的使用。