我试图编写一个搜索函数来通过起诉 std:find 来获取 std::list 中的一个元素。但是我卡在了查找算法的第三个参数中,关于这家伙如何在 stl 列表中搜索元素?我确实重载了运算符 == ,但它似乎仍然无法使用 std::find。
这是我的代码:
class Node
{
string word;
int count;
public:
Node(string _word) :word(_word), count(0) {}
~Node() {}
const string& getWord() const{
return word;
}
bool operator == (const Node& other) const {
return (this->word.compare(other.word) == 0);
}
};
const Node &getNode(const list<Node> &nodes, const string &word){
list<Node>::iterator itr;
itr = find(nodes.begin(), nodes.end(), new Node(word)); <-- no viable overload '='
return *itr;
}
我现在对这个问题非常疯狂,请给我一些提示。谢谢