我的代码中碰巧有以下两个函数使用lambda(尽管我不太了解如何使用lambda),并且它们在模式上看起来略有不同。对不起,我没有编写完整的代码。
DataPairVec::iterator findDataPair(DataPairVec &vec, ofeliaData *dataPtr)
{
return std::find_if(vec.begin(), vec.end(),
[&](const DataPair &ref) {return ref.first == dataPtr;});
}
void sortDataPairVec(DataPairVec &vec)
{
std::stable_sort(vec.begin(), vec.end(),
[](const auto &a, const auto &b) {return a.second < b.second;});
}
我可以注意到,第一个使用[&]
,第二个使用[]
。
我想知道它们的真正含义是什么,哪个更好用? (对于上述情况)