lambda表达式:https://blog.csdn.net/readyone/article/details/110874546
https://blog.csdn.net/readyone/article/details/110948770
bind和lambda表达式的作用类似。
对于lambda表达式,如果表达式捕获列表为空,则我们可以直接使用一个定义的函数进行替换;但是,对于捕获局部变量的lambda表达式,函数替换不方便。比如对于find_if()函数,它只接受一个一元谓词(即传递给find_if的可调用对象只能有一个参数),无法将定义的普通函数传递给find_if函数。
比如:下面的代码中lambda表达式只能有一个形参 a,而sz是通过捕获列表得到的
void biggies(vector<string> &words, vector<string>::size_type sz) {
// lambda
auto wc = find_if(words.begin(), words.end(), [sz](const string &a) {
return a.size() >= sz; //
});
}
因此可以使用bind()函数对普通函数进行绑定,进而达到和lambda表达式相同