我想创建一个查找函数,它根据给定的lambda表达式工作,并匹配给定的字符(其变化)。 我尝试使用lambda表达式,但lambda表达式中的匹配是一个常量字符。根据我的意愿,我不能改变lambda表达式。我有一个vector < pair <char, char> > r
。 我想要做的是,如何创建自定义查找功能?
运行此矢量,看看是否有任何r[i].second
匹配我的给定的字符。在这里,给定的字符是字符串的一部分,因此会随着迭代而变化,所以我无法将其修正到lambda表达式中,我也不能将参数传递给lambda表达式来解决这个问题。
bool findfn (pair <char, char> x)
{
return x.second == mychar // I want to pass mychar as argument
}
一种可能性是使用lambda表达式,这在vincentp的答案中有解释。我们是否也可以使用上面显示的findfn
来做到这一点?调用代码如下所示:
find(r.begin(), r.end(), findfn)
等待你不能改变的拉姆达?为什么不?请至少伪造你想要做的事情。 – NathanOliver
在发布这个问题之前,我不知道我们可以使用lambda的各种方式。 ([]中的参数) – anukul
你不能使用find_if代替find吗?如果你这样做工作正常。 – vincentp