次の方法で共有


CAtlMap クラス

このクラスには、マップ オブジェクトを作成および管理するためのメソッドが用意されています。

template< 
   typename K, 
   typename V, 
   class KTraits = CElementTraits< K >, 
   class VTraits = CElementTraits< V > 
> 
class CAtlMap

パラメーター

  • K
    キー要素の型。

  • V
    値要素の型。

  • KTraits
    キー要素のコピーまたは移動するときに使用するコード。 CElementTraits のクラス を詳細については、" "を参照してください。

  • VTraits
    要素値をコピーまたは移動するときに使用するコード。

メンバー

パブリック typedef

名前

説明

CAtlMap::KINARGTYPE

キーが入力引数として渡されたときに使用する型

CAtlMap::KOUTARGTYPE

キーが出力の引数として戻るときに使用される型。

CAtlMap::VINARGTYPE

入力引数として値が渡されたときに使用する型。

CAtlMap::VOUTARGTYPE

出力の引数として値が渡されたときに使用する型。

パブリック クラス

名前

説明

CAtlMap::CPair クラス

キーと値要素を含むクラス。

CPair のデータ メンバー

名前

説明

CAtlMap::CPair::m_key

キー要素を格納するデータ メンバー。

CAtlMap::CPair::m_value

要素値を格納するデータ メンバー。

パブリック コンストラクター

名前

説明

CAtlMap::CAtlMap

コンストラクターです。

CAtlMap::~CAtlMap

デストラクターです。

パブリック メソッド

名前

説明

CAtlMap::AssertValid

が無効 CAtlMap ASSERT を発生させるにこのメソッドを呼び出します。

CAtlMap::DisableAutoRehash

CAtlMap のオブジェクトの自動に再作成することを無効にするには、このメソッドを呼び出します。

CAtlMap::EnableAutoRehash

CAtlMap のオブジェクトの自動に再作成できるようにするには、このメソッドを呼び出します。

CAtlMap::GetAt

マップ内の指定した位置にある要素を返すには、このメソッドを呼び出します。

CAtlMap::GetCount

マップ要素の数を取得するときにこのメソッドを呼び出します。

CAtlMap::GetHashTableSize

マップのハッシュ テーブルの Bin の数を判断するためにこのメソッドを呼び出します。

CAtlMap::GetKeyAt

CAtlMap のオブジェクトの特定の位置に格納されているキーを取得するときにこのメソッドを呼び出します。

CAtlMap::GetNext

CAtlMap のオブジェクトに格納されている次の要素のペアにポインターを取得するときにこのメソッドを呼び出します。

CAtlMap::GetNextAssoc

次の要素を順番に取得します。

CAtlMap::GetNextKey

CAtlMap のオブジェクトから次のキーを取得するときにこのメソッドを呼び出します。

CAtlMap::GetNextValue

CAtlMap のオブジェクトから次の値を取得するときにこのメソッドを呼び出します。

CAtlMap::GetStartPosition

マップのイテレーションを開始するには、このメソッドを呼び出します。

CAtlMap::GetValueAt

CAtlMap のオブジェクトの特定の位置に格納されている値を取得するときにこのメソッドを呼び出します。

CAtlMap::InitHashTable

ハッシュ テーブルを初期化するには、このメソッドを呼び出します。

CAtlMap::IsEmpty

空のマップ オブジェクトをテストするには、このメソッドを呼び出します。

CAtlMap::Lookup

CAtlMap のオブジェクトのキーまたは値を検索するためにこのメソッドを呼び出します。

CAtlMap::Rehash

再作成にこのメソッドを CAtlMap のオブジェクトで呼び出します。

CAtlMap::RemoveAll

CAtlMap のオブジェクトからすべての要素を削除するには、このメソッドを呼び出します。

CAtlMap::RemoveAtPos

CAtlMap のオブジェクトの指定した位置の要素を削除するには、このメソッドを呼び出します。

CAtlMap::RemoveKey

キーが存在 CAtlMap のオブジェクトから要素を削除するには、このメソッドを呼び出します。

CAtlMap::SetAt

マップのペアに要素を挿入する場合に、このメソッドを呼び出します。

CAtlMap::SetOptimalLoad

CAtlMap のオブジェクトの最適な負荷を設定するには、このメソッドを呼び出します。

CAtlMap::SetValueAt

CAtlMap のオブジェクトの特定の位置に格納されている値を変更するには、このメソッドを呼び出します。

パブリック演算子

名前

説明

CAtlMap::operator []

置換は CAtlMapまたはに新しい要素を追加します。

解説

CAtlMap はキー要素および関連する値の順序なしの配列を管理する特定の型のマッピングの配列をサポートします。 要素は、ハッシュ アルゴリズムを使用して (キーと値で構成されます) に格納され、効率的に格納および取得されるように、大量のデータができます。

KTraits と VTraits のパラメーターは、要素をコピーするか、または実行に必要な補足コードを含む特性のクラスです。

CAtlMap 代わりに、CRBMap のクラスによって提供されます。 またCRBMap のメモリ入力キーと値は、という一つのさまざまなパフォーマンス特性組み合わせたものです。 項目を挿入するか、キーを検索するか、CRBMap のオブジェクトからキーを削除するためにかかる時間は n は 要素の数を注文の ログ (n) です。 CAtlMapでは、これらすべての操作は、通常、最悪のシナリオが注文 *n.*であるかも知れませんが、定数時間がかかります。 したがって、一般的に、CAtlMap は高速です。

CRBMapCAtlMap の他の相違点は、格納されている要素を反復処理すると、明らかになります。 CRBMapでは、要素は、並べ替えられた順序でアクセスされます。 CAtlMapでは、要素は指定されていないため、順序は推論できません。

一部の要素を格納する必要がある場合 CSimpleMap の代わりにクラスを使用することを検討してください。

詳細については、ATL のコレクション クラスを参照してください。

必要条件

Header: atlcoll.h

参照

概念

Marquee サンプル

UpdatePV サンプル

その他の技術情報

ATL クラスの概要