FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
FK::fk_HeapBase< TYPE > クラステンプレート

重複要素に同一IDを与えるための汎用テンプレート [詳解]

#include <FK/HeapBase.h>

公開メンバ関数

 fk_HeapBase (void)
 コンストラクタ
 
virtual ~fk_HeapBase ()
 デストラクタ
 
void clear (void)
 初期化関数
 
int getSize (void)
 要素数取得関数
 
int getID (TYPE *argV)
 要素取得関数
 

詳解

template<class TYPE>
class FK::fk_HeapBase< TYPE >

重複要素に同一IDを与えるための汎用テンプレート

このテンプレートは、重複要素を管理する機能を提供します。 管理したいインスタンスを getID() 関数に代入したとき、 既に同じ値を持つインスタンスが代入済みであった場合にはその ID を返します。 初めて代入された値であった場合は、新しい ID を返します。 内部ではヒープソートを用いているため、 要素数が増加してもそれほど処理速度は低下しません。

対象となるクラスあるいは型においては、以下の条件を満たす必要があります。

構築子と解体子

◆ fk_HeapBase()

template<class TYPE >
FK::fk_HeapBase< TYPE >::fk_HeapBase ( void  )
inline

コンストラクタ

◆ ~fk_HeapBase()

template<class TYPE >
virtual FK::fk_HeapBase< TYPE >::~fk_HeapBase ( )
inlinevirtual

デストラクタ

関数詳解

◆ clear()

template<class TYPE >
void FK::fk_HeapBase< TYPE >::clear ( void  )

初期化関数

これまで格納した情報を全て初期化します。 この関数を呼んだ場合、過去に格納したインスタンスは解放しても構いません。

◆ getSize()

template<class TYPE >
int FK::fk_HeapBase< TYPE >::getSize ( void  )
inline

要素数取得関数

現時点での要素数を返します。 これは、これまで返された ID の最大値でもあります。

戻り値
要素数

◆ getID()

template<class TYPE >
int FK::fk_HeapBase< TYPE >::getID ( TYPE *  argV)
inline

要素取得関数

以下の条件で ID となる値を返します。

  • はじめて値を格納する場合、 あるいは clear() を呼んではじめて値を格納する場合、 ID として 1 を返します。
  • argV の値がこれまでに格納されたインスタンスの値と等しい場合、 そのインスタンスの ID を返します。
  • argV がこれまでに格納されたどのインスタンスとも値が異なる場合、 新しい ID を返します。
引数
[in]argV比較対象インスタンスのアドレス