嗨,我有一个简单的链接列表。
我想知道如何为它创建一个简单的迭代器。
我不确定该怎么做,真的会喜欢这种帮助。
我希望能够这样称呼
SList<class RandomClass> simpleList;
for (auto i : simpleList)
{
}
但是目前我这样称呼它
SList<class RandomClass> simpleList;
for (SLNode<RandomClass>* node = simpleList.Head(); node; node = node->Next())
{
}
这是列表类别
template<class T> class SList;
template<class T>
class SLNode
{
public:
friend class SList<T>;
SLNode<T>* NodeNext;
T* NodeData;
SLNode<T>* Next() const
{
return (SLNode<T>*)NodeNext;
}
T* Data() const
{
return (T*)NodeData;
}
};
template<class T>
class SList
{
public:
SLNode<T>* HeadNode;
SLNode<T>* TailNode;
SLNode<T>* Head() const
{
return HeadNode;
}
SLNode<T>* Tail() const
{
return TailNode;
}
};