bool find函数没有在数组中搜索

时间:2013-10-20 20:00:26

标签: c++

我想为我的类创建find函数来搜索项目数组,如果找到它则返回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;
}

string arr [5] = {“a”,“b”,“c”,“d”,“e”}

数组的最大大小为5

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

如何才能正确搜索?

2 个答案:

答案 0 :(得分:1)

只需使用std::find

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

我假设arr是一个C风格的数组,除非你另有说法。

答案 1 :(得分:0)

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