バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.


RWTPtrSlistDictionary<KP,VP>

形式

#include <rw/tpsldict.h>
RWTPtrSlistDictionary<KP,VP> slistDict;

説明

このクラスは、キーと値の組み合わせの侵入的片方向リストとして実装されている、ポインタにもとづく値のコレクションを維持します。クラス KP はキーの部分が指す型であり、クラス VP は値の部分が指す型です。

持続性

同形

関連クラス

このクラスは、RWTPtrHashDictionary の実装に使用します。

公開コンストラクタ

RWTPtrSlistDictionary<KP,VP>();

空の片方向リンク辞書を作成し、KP 型、VP 型を指すポインタを保持します。

RWTPtrSlist<KP,VP>(const RWTPtrSlistDictionary<KP,VP>&);

コンストラクタをコピーします。

公開メンバー演算子

RWTPtrSlistDictionary<KP,VP>&
operator=(const RWTPtrSlistDictionary<KP,VP>& lst);

すべての要素をクリアし、lst のすべての要素を挿入します。

VP*&
operator[](KP *key);

キー key に関連づけられた値の参照を返します。キー key に何も値が関連づけられていない場合は、関連づける値と nil ポインタ値を作成し、挿入します。

公開メンバー関数

void
applyToKeyAndValue(void (*appFn)(KP*, VP*&,void*), void* d);

appFn が指すユーザー定義関数を、コレクション内の各項目に適用します。パラメータ d で、クライアントデータを渡します。

clear();

すべての組み合わせを削除して、コレクションを消去します。

void
clearAndDestroy();

コレクションからすべての項目を削除し、delete 演算子を使用して、これらの項目が指すオブジェクトを破棄します。同じオブジェクトに対して複数のポインタが格納される場合は、このメソッドを使用しないでください。

RWBoolean
contains(const KP* a) const;

(*k == *a)TRUE になるようなキー k がある場合は TRUE を返し、ない場合は FALSE を返します。

size_t
entries() const;

項目数を返します。

KP*
find(const KP* a) const;

(*k == *a)TRUE になるようなキー k がある場合は k を返します。ない場合には、rwnil を返します。

KP*
findKeyAndValue(const KP* a, VP*& retval) const;

(*k == *a)TRUE になるようなキー k がある場合は、対になる値の部分で retval を置き換え、k を返します。該当するキーがない場合は rwnil を返します。

VP*
findValue(const KP* a) const;

(*k == *a)TRUE になるようなキー k がある場合は対になる値の部分を返し、該当するキーがない場合は rwnil を返します。

void
inserKeyAndValue(KP* k, VP* v);

find(k) が失敗した場合、kv の値を持つ新しい対になる値を挿入します。それ以外の場合は、k に関連づけられた値を v の値で置き換えます。

RWBoolean
isEmpty() const;

コレクションに項目がまったくない場合は TRUE、それ以外の場合は FALSE を返します。

KP*
remove(const KP* k);

find(k) が成功した場合、k に関連づけられた対になる値を削除し、キーの部分を返します。それ以外の場合は rwnil を返します。

KP*
removeKeyAndValue(const KP* k VP*& retVal);

find(k) が成功した場合、k に関連づけられた対になる値を削除し、retVal で置き換え、キーの部分を返します。それ以外の場合は rwnil を返します。