CRBMultiMap クラス
更新 : 2007 年 11 月
このクラスは、レッドブラック バイナリ ツリーを使用して、各キーを複数の値に関連付けることができるマップ構造体を表します。
template<
typename K,
typename V,
class KTraits = CElementTraits< K >,
class VTraits = CElementTraits< V >
> class CRBMultiMap : public CRBTree< K, V, KTraits, VTraits >
パラメータ
K
キー要素の型。V
値要素の型。KTraits
キー要素をコピーまたは移動するコード。詳細については、「CElementTraits クラス」を参照してください。VTraits
値要素をコピーまたは移動するコード。
解説
CRBMultiMap は、指定された型のマップ配列をサポートし、キー要素と値で構成される順序付けされた配列を管理します。CRBMap クラスとは異なり、各キーに複数の値を関連付けることができます。
キーと値で構成される要素は、CRBMultiMap::Insert メソッドを使用して、バイナリ ツリー構造体に格納されます。要素は、CRBMultiMap::RemoveKey メソッドを使用して削除できます。このメソッドは、指定されたキーに一致するすべての要素を削除します。
CRBTree::GetHeadPosition、CRBTree::GetNext、CRBTree::GetNextValue などのメソッドを使用して、ツリーを走査できます。1 つのキーに複数の値がある場合に値にアクセスするには、CRBMultiMap::FindFirstWithKey、CRBMultiMap::GetNextValueWithKey、および CRBMultiMap::GetNextWithKey の各メソッドを使用します。各メソッドの実際の使用方法については、「CRBMultiMap::CRBMultiMap」の例を参照してください。
KTraits パラメータと VTraits パラメータは、要素のコピーや移動を補足するコードを持つ特徴 (traits) クラスです。
CRBMultiMap は、レッドブラック アルゴリズムを使用してバイナリ ツリーを実装する CRBTree から派生します。CAtlMap クラスは、CRBMultiMap および CRBMap の代替クラスとして使用できます。格納される要素が少量の場合は、CSimpleMap クラスの使用を検討してください。
各種のコレクション クラスおよびその機能とパフォーマンスの詳細については、「ATL コレクション クラス」を参照してください。
必要条件
ヘッダー : atlcoll.h