我想为我的类创建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");
如何才能正确搜索?
答案 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。