4

我正在尝试使用我自己的对类来实现一个单链表模板类。我这样做是为了刷新我的 C++ 技能,所以这就是我不只是使用 STL 的原因。

我的列表模板由单一类型参数化:

template <typename T>
class LinkedList
{
private:
    Pair<T, Pair<???>* >* _head;
};

问题是我希望 _head 是一对,其第二个元素是一对相同类型的。这个想法是 _head.first 是元素, _head.second 是指向列表其余部分的指针,如果它是最后一个元素,则为 NULL。

有没有办法使用引用自身的模板类型?

4

2 回答 2

1

也许你正试图做这样的事情:

template <typename T>
class LinkedList
{
private:
    Pair<T, ListList<T> >* _head;
};
于 2012-11-11T21:08:10.990 回答
0

典型的单链表由节点组成,每个节点都包含一个指向下一个节点的指针或一个空指针来表示结束:

template <typename T> List
{
    struct Node
    {
        Node * next;
        T value;
    };

    Node * head;

    List() : head(NULL) { }

    // ... insert, delete, find, iterate ...
}
于 2012-11-11T21:05:38.420 回答