在STL中的许多函数都需要提供一个binary comp function,指明是从大到小还是从小到大,比如sort()函数,最大最小堆等。
这个 comp函数 可以是函数指针或函数对象。也可以是个lambda函数:
lambda函数
1 | cout<<[](float f)->int {return abs(f)};(-3.5)<<endl; |
返回3.
其中[]中是lambda indicators。用法如下:
1 | [ ]://不捕获任何外部变量 |
例子:
1 | auto comp = [](const auto& x, const auto& y) { return x.second < y.second; }; |