检查 std::vector 中的字符串是否包含C++中的子字符串
Check if strings in std::vector contain substring in C++
如果向量中的任何字符串包含子字符串,是否有一种有效的方法来执行函数?
类似的东西
if(vector.contains(strstr(currentVectorElement,"substring"))) {
//do something
}
if(vector.contains(strstr(currentVectorElement,"substring2"))) {
//do something else
}
我唯一能想到的就是遍历每个字符串并检查子字符串是否存在。
您可以将
std::find_if
与lambda表达式一起使用
if(std::find_if(vec.begin(), vec.end(), [](const std::string& str) { return str.find("substring") != std::string::npos; }) != vec.end()) {
...
}
你需要的是std::search()
http://en.cppreference.com/w/cpp/algorithm/search