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

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

この比較を機能させるにはどうすればよいですか

1 つは文字列で、もう 1 つは配列文字列であるため、ここでエラーが発生します。

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 に答える