如何在集合中的特定字符串中查找子字符串

How to Find a Substring in a Particular String in a Set

如何在集合中的字符串中找到子字符串?例如,如果我输入 "Ville," 那么会找到 Louisville、Gainesville 和 Muellerville?我试过下面的代码

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 查找每个名称来解决。我还使用了 multimap 而不是 set。我发现语法更简单并开始工作。

    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;
            }
        }
    }   

您可能正在寻找

if (search.find(str) != std::string::npos)

您的 std::find 调用不应该编译。