c++ - 检查 std::vector 中的字符串是否包含 C++ 中的子字符串

标签 c++ string

如果 vector 中的任何字符串包含子字符串,是否有一种有效的方法来执行函数?

类似的东西

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()) {
    ...
}

关于c++ - 检查 std::vector 中的字符串是否包含 C++ 中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37438049/

相关文章:

java - 让 bufferedreader 从循环到下一行?

java - 如何正常或使用 EventBus 将数据从 Activity 传递到 Service?

c++ - 带有 char* 和 << 运算符的条件跳转 valgrind

c++ - 我们应该在取消注册时删除观察者吗?

c++ - 需要从 C++ 模板函数返回与此相同的类型

c++ - 如何在继承类中再次使用虚函数

c++ - 信号未在此范围内声明/未定义对 class::method 的引用

c++ - 表达 >>= 运算符

java - 检查字符串是否包含在数组 android studio 中设置的单词

java - 如何检查字符串数组上的字符值?