4

独自のペア クラスを使用して、単一リンク リスト テンプレート クラスを実装しようとしています。私は C++ のスキルをリフレッシュするための演習としてこれを行っているため、STL だけを使用するわけではありません。

マイ リスト テンプレートは、次の 1 つのタイプでパラメータ化されます。

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

問題は、_head を、2 番目の要素が同じ型のペアであるペアにしたいことです。アイデアは、_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 に答える