所以我创建了一个数组列表数组:
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>
那么为什么我仍然会收到错误?有没有其他方法可以搜索列表并找到我要查找的内容?
答案 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 documentation。 find
中没有成员函数std::list
。
相反,请使用标题<algorithm>
中的通用std::find
。