简单的链表迭代器

时间:2019-06-30 10:35:15

标签: c++ c++11 linked-list iterator

嗨,我有一个简单的链接列表。

我想知道如何为它创建一个简单的迭代器。

我不确定该怎么做,真的会喜欢这种帮助。

我希望能够这样称呼

    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;
    }
};

0 个答案:

没有答案