在我的c程序中,我有自己的自定义 Map ,由自定义节点组成,我试图获取“第一”和“第二”值(如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;
}
任何关于如何正确实现第一个版本并删除此错误的建议将不胜感激 .
1 回答
(从评论转移)
解决方案是从
operator *
返回一个引用,如下所示: