TNB Library
クラス | 公開メンバ関数 | 全メンバ一覧
CTreeT< KEY, VAL, INK > クラステンプレート

ツリー型情報管理テンプレートクラス [詳解]

#include <TnbTree.h>

+ CTreeT< KEY, VAL, INK > の継承関係図

クラス

struct  ICommand
 ツリー型情報管理用 全キー走査コマンドインターフェース [詳解]
 

公開メンバ関数

bool Add (INK key, VAL v)
 [追加] キー下の値追加 [詳解]
 
bool AddLeaf (INK key, CTreeT< KEY, VAL, INK > &other)
 [追加] キー下に枝を追加 [詳解]
 
VAL & At (INK key)
 [取得] キー下の値の参照 [詳解]
 
const VAL & At (INK key) const
 [取得] キー下の値の参照 [詳解]
 
VAL & AtSelf (void)
 [取得] 直下の情報の参照 [詳解]
 
const VAL & AtSelf (void) const
 [取得] 直下の情報の参照 [詳解]
 
CTreeT< KEY, VAL, INK > Clone (void) const
 [複製] 複製作成 [詳解]
 
 CTreeT (const CTreeT &other)
 コピーコンストラクタ [詳解]
 
 CTreeT (void)
 コンストラクタ [詳解]
 
virtual void Deserialize (const IDeserializer &ds)
 [通知] デシリアライズ [詳解]
 
CVectorT< KEY > EnumKeys (void) const
 [取得] キー一覧 [詳解]
 
VAL Get (INK key) const
 [取得] キー下の値取得 [詳解]
 
CConstKeysAdapter GetKeysAdapter (void) const
 [取得] キーのみの参照アダプタ取得. [詳解]
 
size_t GetSize (void) const
 [取得] キーの数 [詳解]
 
bool HasKey (INK key) const
 [確認] キー有無 [詳解]
 
bool HasLeaf (INK key) const
 [確認] キーは枝を持つか [詳解]
 
CTreeT< KEY, VAL, INK > operator() (INK key)
 [取得] キー下のTree取得 [詳解]
 
const CTreeT< KEY, VAL, INK > operator() (INK key) const
 [取得] キー下のTree取得 [詳解]
 
CTreeToperator= (const CTreeT &other)
 [代入] コピーオペレータ [詳解]
 
VAL & operator[] (INK key)
 [取得] キー下の値の参照 [詳解]
 
const VAL & operator[] (INK key) const
 [取得] キー下の値の参照 [詳解]
 
CTreeT< KEY, VAL, INK > Refer (INK key)
 [取得] キー下のTree取得 [詳解]
 
const CTreeT< KEY, VAL, INK > Refer (INK key) const
 [取得] キー下のTree取得 [詳解]
 
bool Remove (INK key)
 [削除] キー下の値と枝を削除 [詳解]
 
void RemoveAll (void)
 [削除] 値と枝を削除 [詳解]
 
bool Scan (ICommand *I)
 [走査] 全要素走査. [詳解]
 
virtual void Serialize (ISerializer &_sr) const
 [通知] シリアライズ [詳解]
 
bool Set (INK key, VAL v)
 [設定] キー下の値設定 [詳解]
 
virtual ~CTreeT (void)
 デストラクタ [詳解]
 

詳解

template<typename KEY, typename VAL, typename INK = KEY>
class TNB::CTreeT< KEY, VAL, INK >

ツリー型情報管理テンプレートクラス

覚え書き
ICollenctionT は実装していません。
注意
本クラスのコピー機能は実体の参照の複製になります。 別の実体にしたい場合、 Clone() を使う必要があります。
引数
KEYキーとする型。クラスの場合コピー機能が必須。
VAL値とする型。クラスの場合コピー機能が必須。
INKキーとする型の入力型。省略可能。
必要ファイル
TnbTree.h
日付
06/04/28 新規作成
06/09/04 全面改訂

TnbTree.h46 行目に定義があります。

構築子と解体子

◆ CTreeT() [1/2]

CTreeT ( void  )

コンストラクタ

覚え書き
枝が一つもないTree

TnbTree.h188 行目に定義があります。

◆ CTreeT() [2/2]

CTreeT ( const CTreeT< KEY, VAL, INK > &  other)

コピーコンストラクタ

覚え書き
情報の共有をします。
引数
otherコピー元

TnbTree.h198 行目に定義があります。

◆ ~CTreeT()

virtual ~CTreeT ( void  )
virtual

デストラクタ

TnbTree.h203 行目に定義があります。

関数詳解

◆ Add()

bool Add ( INK  key,
VAL  v 
)

[追加] キー下の値追加

引数
keyキー
v
戻り値
true追加成功
falseキーは存在していた

TnbTree.h356 行目に定義があります。

◆ AddLeaf()

bool AddLeaf ( INK  key,
CTreeT< KEY, VAL, INK > &  other 
)

[追加] キー下に枝を追加

覚え書き
キーがあると失敗します。
注意
追加するTREEが、自分の子供、親でないことを保障してから枝を指定してください。
引数
keyキー
other
戻り値
true追加成功
falseキーは存在していた

TnbTree.h412 行目に定義があります。

◆ At() [1/2]

VAL & At ( INK  key)

[取得] キー下の値の参照

覚え書き
キーがない場合、追加します。
引数
keyキー
戻り値
値の参照

TnbTree.h281 行目に定義があります。

◆ At() [2/2]

const VAL & At ( INK  key) const

[取得] キー下の値の参照

引数
keyキー
戻り値
値の参照
例外
CEmptyExceptionキーが存在しない時にスローされます。

TnbTree.h255 行目に定義があります。

◆ AtSelf() [1/2]

VAL & AtSelf ( void  )

[取得] 直下の情報の参照

戻り値
情報(値と枝)

TnbTree.h233 行目に定義があります。

◆ AtSelf() [2/2]

const VAL & AtSelf ( void  ) const

[取得] 直下の情報の参照

戻り値
情報(値と枝)

TnbTree.h224 行目に定義があります。

◆ Clone()

CTreeT< KEY, VAL, INK > Clone ( void  ) const

[複製] 複製作成

戻り値
複製。変更しても本インスタンスに影響有りません。
todo:
現在シリアライズ機能を使って複製しています。そのため処理速度は遅いです。

TnbTree.h537 行目に定義があります。

◆ Deserialize()

virtual void Deserialize ( const IDeserializer ds)
virtual

[通知] デシリアライズ

引数
dsデシリアライザー。これからメンバの内容を取り出してください。
例外
CTnbException失敗時は、任意のスローの可能性があります。

ISerializableを実装しています。

TnbTree.h527 行目に定義があります。

◆ EnumKeys()

CVectorT< KEY > EnumKeys ( void  ) const

[取得] キー一覧

戻り値
一覧

TnbTree.h327 行目に定義があります。

◆ Get()

VAL Get ( INK  key) const

[取得] キー下の値取得

引数
keyキー
戻り値
値の参照
例外
CEmptyExceptionキーが存在しない時にスローされます。

TnbTree.h309 行目に定義があります。

◆ GetKeysAdapter()

CConstKeysAdapter GetKeysAdapter ( void  ) const

[取得] キーのみの参照アダプタ取得.

キーのみ参照アダプタクラスを作成します。

戻り値
CConstKeysAdapter

TnbTree.h437 行目に定義があります。

◆ GetSize()

size_t GetSize ( void  ) const

[取得] キーの数

戻り値

TnbTree.h318 行目に定義があります。

◆ HasKey()

bool HasKey ( INK  key) const

[確認] キー有無

引数
keyキー
戻り値
true存在する
false存在しない

TnbTree.h244 行目に定義があります。

◆ HasLeaf()

bool HasLeaf ( INK  key) const

[確認] キーは枝を持つか

引数
keyキー
戻り値
true持っている
false持っていない

TnbTree.h389 行目に定義があります。

◆ operator()() [1/2]

CTreeT< KEY, VAL, INK > operator() ( INK  key)

[取得] キー下のTree取得

覚え書き
取得したTreeは操作可能です。操作すると元のTreeに影響が有ります。
存在しないキーを指定すると拡張されます。
引数
keyキー
戻り値
Tree

TnbTree.h474 行目に定義があります。

◆ operator()() [2/2]

const CTreeT< KEY, VAL, INK > operator() ( INK  key) const

[取得] キー下のTree取得

引数
keyキー
戻り値
Tree
例外
CEmptyExceptionキーの下の枝が存在しない時にスローされます。

TnbTree.h507 行目に定義があります。

◆ operator=()

CTreeT & operator= ( const CTreeT< KEY, VAL, INK > &  other)

[代入] コピーオペレータ

注意
情報の共有をします。
引数
otherコピー元
戻り値
自分の参照

TnbTree.h214 行目に定義があります。

◆ operator[]() [1/2]

VAL & operator[] ( INK  key)

[取得] キー下の値の参照

覚え書き
キーがない場合、追加します。
引数
keyキー
戻り値
値の参照

TnbTree.h298 行目に定義があります。

◆ operator[]() [2/2]

const VAL & operator[] ( INK  key) const

[取得] キー下の値の参照

引数
keyキー
戻り値
値の参照
例外
CEmptyExceptionキーが存在しない時にスローされます。

TnbTree.h270 行目に定義があります。

◆ Refer() [1/2]

CTreeT< KEY, VAL, INK > Refer ( INK  key)

[取得] キー下のTree取得

覚え書き
取得したTreeは操作可能です。操作すると元のTreeに影響が有ります。
存在しないキーを指定すると拡張されます。
引数
keyキー
戻り値
Tree

TnbTree.h449 行目に定義があります。

◆ Refer() [2/2]

const CTreeT< KEY, VAL, INK > Refer ( INK  key) const

[取得] キー下のTree取得

引数
keyキー
戻り値
Tree
例外
CEmptyExceptionキーの下の枝が存在しない時にスローされます。

TnbTree.h485 行目に定義があります。

◆ Remove()

bool Remove ( INK  key)

[削除] キー下の値と枝を削除

引数
keyキー
戻り値
true成功
false失敗(キーが存在しない)

TnbTree.h374 行目に定義があります。

◆ RemoveAll()

void RemoveAll ( void  )

[削除] 値と枝を削除

TnbTree.h426 行目に定義があります。

◆ Scan()

bool Scan ( ICommand I)

[走査] 全要素走査.

順次発見し、 ICommand インターフェースに通知します。

引数
Iコマンド
戻り値
true最後まで走査
false中断

TnbTree.h555 行目に定義があります。

◆ Serialize()

virtual void Serialize ( ISerializer _sr) const
virtual

[通知] シリアライズ

引数
[out]_srシリアライザー。 これに対しメンバの内容を追加してください。
例外
CTnbException失敗時は、任意のスローの可能性があります。

ISerializableを実装しています。

TnbTree.h517 行目に定義があります。

◆ Set()

bool Set ( INK  key,
VAL  v 
)

[設定] キー下の値設定

引数
keyキー
v
戻り値
true設定成功
falseキーは存在しない

TnbTree.h339 行目に定義があります。