-1
string name;
strarray[] = ["Jack", "Tom" , "Jill"]

if(name == strarray)
{
    //implementation here
}

我如何使这种比较工作

我在这里收到一个错误,因为一个是字符串,一个是数组字符串。

4

3 回答 3

2

标准库有一个名为的函数find正是这样做的:(包括<algorithm>头文件)

std::string strarray[] = {"Jack", "Tom" , "Jill"};

if (std::find(strarray, strarray + 3, name) != strarray + 3) {
    // implementation here
}
于 2012-10-08T00:42:00.757 回答
2

您可以使用std::find()

if (std::end(strarray) != std::find(std::begin(strarray), std::end(strarray), name)) {
    // implementation goes here
}

std::begin()并且std::end()在 C++ 2011 中是新的,但它们实现起来很简单:

template <typename T, int Size> T* begin(T (&array)[Size]) { return array; }
template <typename T, int Size> T* end(T (&array)[Size]) { return array + Size; }
于 2012-10-08T00:42:33.910 回答
1
bool flag=false;
string name;
strarray[] = ["Jack", "Tom" , "Jill"]

//How do I make this comparison work
//I am getting an error here bc one is a string and one is an array string
for(int i=0;i<3;i++)
{
    if(name == strarray[i])
    {
        flag=true;
        break;
    }
}

if(flag)
//implementation here :)
于 2012-10-08T00:12:03.183 回答