FineKernelToolKit 2.9.0

- メインページ
- ネームスペース
- クラス
- ファイル

- 構成
- クラス階層
- 構成メンバ

全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義 ページ
Public メソッド | すべてのメンバ一覧
クラス テンプレート fk_HeapBase< TYPE >

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

## Public メソッド
| fk_HeapBase (void)
| コンストラクタ [詳細]
virtual | ~fk_HeapBase ()
| デストラクタ [詳細]
void | clear (void)
| 初期化関数 [詳細]
int | getSize (void)
int | getID (TYPE *argV)

## 説明

### template<class TYPE>
class fk_HeapBase< TYPE >

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

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

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

- 等号演算子「==」によって値の同一性比較ができる。
- 不等号演算子「>」および「<」によって大小比較ができる。
- 不等号において、a < b かつ b < c であるならば a < c であるという 推移律が必ず成り立つ。逆方向も同様。
- getID() 関数を用いる際、これまでに格納した全インスタンスが生存している。

意見
  本クラスは現在ベータ機能としての位置づけであり、 ユーザーズマニュアルには記載されていません。 また、今後のバージョンアップにおいて仕様が変更される可能性があります。

## コンストラクタとデストラクタ

template<class TYPE >

fk_HeapBase< TYPE >::fk_HeapBase | ( | void |  | ) |
| inline

コンストラクタ

template<class TYPE >

virtual fk_HeapBase< TYPE >::~fk_HeapBase | ( |  | ) |
| inline virtual

デストラクタ

## 関数

template<class TYPE >

void fk_HeapBase< TYPE >::clear | ( | void |  | ) |

初期化関数

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

template<class TYPE >

int fk_HeapBase< TYPE >::getSize | ( | void |  | ) |
| inline

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

戻り値
  要素数

template<class TYPE >

int fk_HeapBase< TYPE >::getID | ( | TYPE * | argV | ) |
| inline

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

- はじめて値を格納する場合、 あるいは clear() を呼んではじめて値を格納する場合、 ID として 1 を返します。
- argV の値がこれまでに格納されたインスタンスの値と等しい場合、 そのインスタンスの ID を返します。
- argV がこれまでに格納されたどのインスタンスとも値が異なる場合、 新しい ID を返します。

引数

  [in] | argV | 比較対象インスタンスのアドレス