C ++中的std :: list是否有find()方法?

时间:2015-10-17 18:19:18

标签: c++

所以我创建了一个数组列表数组:

list<string> myArrayOfLists[size];

然后我像这样推了一句话:

myArrayOfLists[index].push_back(word);

然后我试图找到这样一个词:

myArrayofLists[index].find(myArrayOfLists[size].begin(), myArrayOfLists[size].begin(), word);

最后一个命令返回了一个错误,上面写着:

no member named 'find' in 'std::list<std::basic_string<char>, std::allocator<std::basic_string<char>>>'

我想如果我导入<algorithm>那么为什么我仍然会收到错误?有没有其他方法可以搜索列表并找到我要查找的内容?

2 个答案:

答案 0 :(得分:1)

只有那些能够以某种方式找到有效元素的标准库容器才具有find个成员函数。对于所有其他容器,请使用std::find免费功能:

auto it = std::find(x.begin(), x.end(), "needle");

std::cout << (it == x.end() ? "not found" : "found");

答案 1 :(得分:1)

糟糕!你忘记了read the documentationfind中没有成员函数std::list

相反,请使用标题<algorithm>中的通用std::find