我正在尝试在循环中比较自定义迭代器。
for(auto i = list.begin(); !(i == list.end()); ++i) {
}
此代码产生以下错误。
Invalid operands to binary expression
('List<double>::iterator' and 'List<double>::iterator')
但我确实实现了比较运算符。
class iterator: public std::iterator<std::bidirectional_iterator_tag, value_type> {
const element *current;
public:
const bool operator==( iterator &rhs) const {
return current == rhs.current;
}
为什么会失败?