1

我一直在尝试实现链表迭代器类。当我在这里使用重载的“!=”运算符时,编译器会抱怨:

for (itr = (test0.begin()); itr != (test0.end()); ++itr)
{
    cout << *itr;
}

这是错误:

error: no match for ‘operator!=’ in ‘itr != SinglyLinkedList<Object>::end() [with Object = int]()’

我不明白为什么它找不到匹配项,因为 test0.end() 和 itr 都是迭代器。

这是重载运算符的代码:

bool operator!= (iterator &rhs)
{
    return (this->current != rhs.current);
}

提前致谢。

4

1 回答 1

5

我怀疑这是因为 const 正确性:

bool operator!= (iterator const &rhs) const
{
    return (this->current != rhs.current);
}
于 2013-03-12T13:33:05.297 回答