Как найти подстроку в строке в наборе? Например, если я введу «Вилле», то будут найдены Луисвилл, Гейнсвилл и Мюлервилль? Я попробовал следующий код
for(string const& search : cities)
{
if(find(search.begin(), search.end(), str) != std::string::npos)
{
string y = search;
employees.emplace_back(y);
, но я не могу понять, что не так с моим синтаксисом. Этот код используется в следующем проекте ( Код проекта )
РЕДАКТИРОВАТЬ: Моя проблема была проста и была исправлена с помощью .begin () и .end () для перебора мультикарты name_address и найти каждое имя с помощью .substr. Я также использовал мультикарту вместо набора. Я нашел синтаксис проще и заставил его работать.
for(auto it = name_address.begin(); it != name_address.end(); ++it)
{
for(int i = 0; i < it->first.length(); ++i)
{
string tmpstr3 = it->first.substr(0 + i, str.length());
if(str == tmpstr3)
{
employees.insert(it->second);
break;
}
}
}