ソースはC ++リストを学びます

A.リストの例

#include <一覧> // 呼び出しシステムリスト、双方向円形のリンクリスト構造
用いて名前空間STD;
 INT メイン(ボイド)
{     
    リスト < INT > マイリスト;    
     のためのINT I = 1。 ;私は= < 10 ; I ++は
    {         
        mylist.push_back (I);   // インタフェースは、最後に追加     
    }     
    
    リスト < INT ;> :: =イテレータITをmylist.begin()// イテレータ、     
    一方(!それは= mylist.end())
    {         
        COUT << << * IT " - > "; // 印刷内部デジタル
++ IT;
} }

 

II。ソース・ラーニング

重複定義を回避するために#ifndefの_LIST_H //コンパイラマクロ条件
#define _LIST_H位<assert.h> //導入ヘッダを主張含めます
書式#include <malloc.hを> //宇宙アプリケーション導入ヘッダ
テンプレート<クラス_Ty> //ここに最初の分周スペースを必要としません
クラスリスト{//リスト类
  パブリック:

    _NODE構造体;

  _NODE * _Nodeptr構造体のtypedef; //ポインタがノードを入力します

  構造体_NODE {// _ノードは、ノードタイプであります

          _Nodeptr _PREV; //前駆体ノード

          _Nodeptr _Next; //後続ノード

          _Ty _value; //テンプレートデータの種類

}。

  構造体_Acc {このタイプの//定義_ACC

        _NODE *&_Nodepref構造体のtypedef; //ポインタは、参照のノードタイプに

        typedefの_Ty&_Vref; //このデータ型の参照

        静的_Nodepref _Next(_Nodeptr _P)//静的メソッドは、基準ノードポインタの値は、ノードのパラメータへのポインタで返します

        {

    リターン((_Nodepref)(* _ P)._次へ); // * _ P)(このノードで得られ、この場合、鋳造作業、復帰を行う、-next取るよう鋳造優先順位が高くありません。参照を指し示すノードポインタ。

        }

  静的_Nodepref _PREV(_Nodeptr _P)

        {

    リターン((_Nodepref)(* _ P)._前)。

        }

  静的_Vref _value(_Nodeptr _P)

  {

    リターン((_Vref)(* _ P)._値);}

  }。

  公共://以下のクラスタイプは、分周器の空間で、次の種類_A、_Aクラス定義されています

        typedefの型名_A :: VALUE_TYPE VALUE_TYPE。

        typedefの型名_A :: pointer_type pointer_type。

        typedefの型名_A :: const_pointer_type const_pointer_type。

        typedefの型名_A :: reference_type reference_type。

        typedefの型名_A :: const_reference_type const_reference_type。

        typedefの型名_A :: size_type size_type; //このタイプは、実際にsize_tprivateです。

        _Nodeptr _Head、ヘッドノードを指すポインタ//

     _Sizeをsize_type; //番号は、いくつかのノードを有する};#

III。コンストラクタとデストラクタ

パブリック:

    明示的なリスト():_ヘッド(_Buynode())、_サイズ(0)コンストラクタが呼び出される//明示的なディスプレイ、ヘッドを指し0を開始

    {}

    〜リスト()

    {//この段階では気にしないし、宇宙と宇宙関連コンフィギュレータを解放。

        消去((開始)、エンド()); //スペースを解放するために、関数の最後の開始を呼び出します。

        _Freenode(_Head); //は頭を解放します。

        _Head = 0、_Size = 0; // nullのオード。

    }

 

おすすめ

転載: www.cnblogs.com/mysky007/p/11247860.html