-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 回答
0

如果您将数组定义为具有元素类型 char,那么您的函数确实将不起作用,因为 char 类型的对象不能隐式转换为 std::string 类型。

于 2013-10-20T20:25:01.147 回答