次の方法で共有


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::GetHeadPositionCRBTree::GetNextCRBTree::GetNextValue などのメソッドを使用して、ツリーを走査できます。1 つのキーに複数の値がある場合に値にアクセスするには、CRBMultiMap::FindFirstWithKeyCRBMultiMap::GetNextValueWithKey、および CRBMultiMap::GetNextWithKey の各メソッドを使用します。各メソッドの実際の使用方法については、「CRBMultiMap::CRBMultiMap」の例を参照してください。

KTraits パラメータと VTraits パラメータは、要素のコピーや移動を補足するコードを持つ特徴 (traits) クラスです。

CRBMultiMap は、レッドブラック アルゴリズムを使用してバイナリ ツリーを実装する CRBTree から派生します。CAtlMap クラスは、CRBMultiMap および CRBMap の代替クラスとして使用できます。格納される要素が少量の場合は、CSimpleMap クラスの使用を検討してください。

各種のコレクション クラスおよびその機能とパフォーマンスの詳細については、「ATL コレクション クラス」を参照してください。

必要条件

ヘッダー : atlcoll.h

参照

参照

CRBTree クラス

CAtlMap クラス

CRBMap クラス

その他の技術情報

CRBMultiMap のメンバ

ATL クラスの概要