0

在我的 c++ 程序中,我有自己的自定义地图,由自定义节点组成,我试图在其中获取“第一”和“第二”值(如 std::map)。我尝试了许多不同的语法,但无济于事。

我知道这个问题的通常解决方法是替换(*key_Iterator).first为,(*key_Iterator)->first但在这种情况下,我需要能够访问第一种方法中的值。

我在迭代器类中添加了变量,但程序无法识别它们。

template <class T, class P>
class Iterator {
  public:
    Node<T,P>* operator*() { return ptr_; }
  private:
    Node<T,P>* ptr_;
    T first;
    P second;
}

任何有关如何正确实施第一个版本和消除此错误的建议将不胜感激。

4

1 回答 1

3

(从评论移动)

解决方案是从您的中返回一个引用operator *,如下所示:

Node<T,P> &operator *() { return *ptr_; } 
于 2013-04-11T22:49:08.910 回答