У меня есть вектор строки, и я хочу вернуть строку из вектора, которая похожа на строку.Найти строку в векторе в C++
Например, вектор содержит: «load», «fox», «google», «firefox», а строка: «mozilla firefox». Истинный результат в этом примере - «firefox».
Я использую следующий код, но это неправильно и возвращает «лиса» для моего образца.
vector<string>::const_iterator it_found = find_if(MyVector.begin(), MyVector.end(), [&MyString](string s) -> bool
{ return(MyString.find(s) != string::npos); });
if(it_found != MyVector.end())
{
//Do Somthing
}
Что мне делать?
Вы только проверяете, является ли строка внутри вектора частью искомой строки. поэтому ваше состояние недостаточно конкретное. – Zaiborg
Оба '" fox "и' "firefox" 'находятся в' 'mozilla firefox''. Вам нужны дополнительные критерии для выбора «firefox» и игнорировать «лиса». –