我想創建一個查找函數,它根據給定的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