-3

アイテムの配列を検索し、見つかった場合は 1 を返し、そうでない場合は 0 を返すクラスの検索関数を作成したいと考えています。

ここで私のコードですが、常に0を返します:

// implementation file 
bool bag::find(string item_name)
{
    for (int i = 0; i < 5; i++)
        if (arr[i] == item_name)
            return true;
    return false;
}

文字列 arr[5]={"a","b","c","d","e"}

配列の最大サイズは 5 です

// main
cout << find("a");

正しく検索するにはどうすればよいですか?

4

2 に答える 2

1

使用するだけstd::findです:

bool bag::find(std::string item)
{
    return std::find(arr, arr + 5, item) != &arr[5];
}

arr別の言い方をしない限り、Cスタイルの配列であると想定しています。

于 2013-10-20T20:08:32.407 に答える