lambda中[]和[&]之间的区别?

时间:2018-08-31 14:19:35

标签: c++ lambda

我的代码中碰巧有以下两个函数使用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;});
}

我可以注意到,第一个使用[&],第二个使用[]

我想知道它们的真正含义是什么,哪个更好用? (对于上述情况)

0 个答案:

没有答案