我正在制作自己的类似 STL 的容器 - 带有任意数量孩子的树
template<typename Type>
class Node
{
Type value;
Iterator AddChild(const Type & value);
void Remove(const Iterator & where);
...
};
我决定迭代器operator*
应该返回value
当前节点,但是应该返回operator->
什么?目前,它返回Node<Type>*
并且在这种情况下非常有用
Node<int>::Iterator it = tree.begin();
it->AddChild(4);
但是我的导师说我,那operator->
应该回来Type*
。访问 Node 方法的类似 STL 的方式是什么?类似的东西看起来it.Ref().MyMethod()
不太好。