我正在为一个库实现一个自定义迭代器,并且正在重载运算符 ++ 和 --。我的前缀运算符可以完美地工作,但我的后运算符会导致内存泄漏。
avl_iterator& operator++()
{
_node = utilities::next_node( _node );
return (*this);
}
avl_iterator& operator ++( int ) {
avl_iterator temp(*this);
++(*this);
return(temp);
}
avl_iterator& operator -- () {
_node = utilities::prev_node( _node );
return (*this);
}
avl_iterator& operator -- ( int ) {
avl_iterator temp(*this);
--(*this);
return(temp);
}
我意识到这是因为我正在返回一个临时变量,但我似乎无法思考(或找到)更好的方法来做到这一点。