在实现 Iterator 类时,我遇到了重载 ->() 运算符的问题。这个运算符应该如何重载?
class iterator
{
private:
pair<Key_t, Val_t> p;
public:
iterator()
{
}
iterator(const iterator &i)
{
p = i.p;
}
iterator(Key_t key, Val_t v)
{
p = make_pair(key,v);
}
pair<const Key_t,Val_t>& operator *() const
{
return p;
}
iterator& operator = (const iterator &iter)
{
this->p = iter;
return *this;
}
};
尝试这种方式不成功
&(pair<const Key_t,Val_t>&) operator ->() const
{
return &(**this);
}