检查字符串是否包含向量值的有效方法<;字符串>;? 我对C++编程很陌生,但出于某些原因,我需要开发C++中的一个小工具。我已经用C#编写了相同的工具。现在我正在尝试检查我的字符串是否包含存储在std::vector中的值。在C#中,这是非常直截了当的,只需使用以下内容: if(string.Contains(myarray)) { // do sth. } 在C++中,这似乎更难实现。我搜索了不少,但到目前为止,我只找到了检查整个字符串是否存在于数组中的解决方案,而不仅仅是数组的某一部分。

检查字符串是否包含向量值的有效方法<;字符串>;? 我对C++编程很陌生,但出于某些原因,我需要开发C++中的一个小工具。我已经用C#编写了相同的工具。现在我正在尝试检查我的字符串是否包含存储在std::vector中的值。在C#中,这是非常直截了当的,只需使用以下内容: if(string.Contains(myarray)) { // do sth. } 在C++中,这似乎更难实现。我搜索了不少,但到目前为止,我只找到了检查整个字符串是否存在于数组中的解决方案,而不仅仅是数组的某一部分。,c++,string,C++,String,使用for循环和find方法。使用for循环和find方法。不幸的是std::string没有一种方法可以查看数组中的元素是否存在向量是像C#一样的字符串。但它所具有的功能是,它可以确定一个字符串是否包含在您调用的findon字符串中。你可以这样用 std::vector<std::string> words; // fill words std::string search_me = "some text"; for (const auto & e : words) {

使用for循环和
find
方法。

使用for循环和
find
方法。

不幸的是
std::string
没有一种方法可以查看数组中的元素是否存在向量是像C#一样的字符串。但它所具有的功能是,它可以确定一个字符串是否包含在您调用的
find
on字符串中。你可以这样用

std::vector<std::string> words;
// fill words
std::string search_me = "some text";
for (const auto & e : words)
{
    if (search_me.find(e) != std::string::npos)
    {
        // e is contained in search me.  do something here
        // call break here if you only want to check for one existence
    }
}
std::向量词;
//填词
std::string search_me=“some text”;
用于(const auto&e:words)
{
if(search_me.find(e)!=std::string::npos)
{
//e包含在搜索我中。在这里做点什么
//如果您只想检查是否存在,请在此处调用break
}
}

这是O(N*complexity\u of_find)。

不幸的是
std::string
没有一种方法可以像C一样查看向量的元素是否在字符串中。但它所具有的功能是,它可以确定一个字符串是否包含在您调用的
find
on字符串中。你可以这样用

std::vector<std::string> words;
// fill words
std::string search_me = "some text";
for (const auto & e : words)
{
    if (search_me.find(e) != std::string::npos)
    {
        // e is contained in search me.  do something here
        // call break here if you only want to check for one existence
    }
}
std::向量词;
//填词
std::string search_me=“some text”;
用于(const auto&e:words)
{
if(search_me.find(e)!=std::string::npos)
{
//e包含在搜索我中。在这里做点什么
//如果您只想检查是否存在,请在此处调用break
}
}
这是O(N*find的复杂性)。

我建议

但我不知道我是否理解你的确切问题。你能举一个小例子说明你想从什么中找到什么吗?

我建议


但我不知道我是否理解你的确切问题。你能举一个小例子说明你想在什么中找到什么吗?

如果你需要更有效的方法在字符串中找到几个子字符串,而不是简单的逐字符串查找,你可以使用
它用于保存子字符串

若您需要比直接逐个字符串查找更有效的方法来查找字符串中的多个子字符串,可以使用
它用于保存子字符串

您正在检查向量中的一个元素是否与字符串相同,或者向量中的一个元素是否包含在字符串中?您提到的第二件事。我试图找出向量中元素的on是否包含在字符串中。查看的文档,我看到一个名为Contains的方法,它使用一个字符串,两个方法使用单个字符。这个获取整个数组的方法在哪里?我怀疑您正在使用一个自定义的
字符串
扩展方法,因为它似乎不在dotnet中。您正在检查向量中的一个元素是否与字符串相同,或者向量中的一个元素是否包含在字符串中?您提到的第二件事。我试图找出向量中元素的on是否包含在字符串中。查看的文档,我看到一个名为Contains的方法,它使用一个字符串,两个方法使用单个字符。这个占用整个数组的方法在哪里?我怀疑您使用的是自定义的
字符串
扩展方法,因为它在dotnet中似乎不存在。谢谢,这正是我要找的,而且工作正常:)谢谢,这正是我要找的,工作正常:)