我不明白为什么这条指令会删除列表中的所有元素
z->data().remove(d);
z和d是这些: ž d
std::list<Data>& data()const{return this->d;};
这是平等比较
template <class Key, class Data>
bool operator== (const Node<Key,Data>& lhs, const Node<Key,Data>& rhs)
{ return lhs.key()==rhs.key() && lhs.data()==rhs.data(); }
答案 0 :(得分:0)
如果remove
(在您的情况下为d
)的参数与列表中的每个元素相等,则整个列表将被“删除”。这显然就是你的情况。
您的列表似乎包含类类型Node<char, unsigned long>
的对象。您是否正确地为这些==
对象编写了等式比较运算符Node
?