次の方法で共有


CSimpleMap クラス

このクラスでは、シンプルなマッピング配列のサポートが提供されます。

構文

template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap

パラメーター

TKey
キー要素の型。

TVal
値要素の型。

TEqual
T 型の要素の等値テストを定義する特性オブジェクト。

メンバー

パブリック typedef

名前 説明
CSimpleMap::_ArrayElementType 値型の typedef。
CSimpleMap::_ArrayKeyType キー型の typedef。

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

名前 説明
CSimpleMap::CSimpleMap コンストラクター。
CSimpleMap::~CSimpleMap デストラクター。

パブリック メソッド

名前 説明
CSimpleMap::Add キーと関連付けられた値をマップ配列に追加します。
CSimpleMap::FindKey 特定のキーを検索します。
CSimpleMap::FindVal 特定の値を検索します。
CSimpleMap::GetKeyAt 指定したキーを取得します。
CSimpleMap::GetSize マッピング配列内のエントリの数を返します。
CSimpleMap::GetValueAt 指定した値を取得します。
CSimpleMap::Lookup 指定したキーに関連付けられている値を返します。
CSimpleMap::Remove キーと一致する値を削除します。
CSimpleMap::RemoveAll すべてのキーと値を削除します。
CSimpleMap::RemoveAt 特定のキーと一致する値を削除します。
CSimpleMap::ReverseLookup 指定した値に関連付けられているキーを返します。
CSimpleMap::SetAt 指定したキーに関連付けられる値を設定します。
CSimpleMap::SetAtIndex 特定のキーと値を設定します。

解説

CSimpleMap では、指定した任意の型 T のシンプルなマッピング配列がサポートされます。これにより、キー要素の順序付けられていない配列と、関連する値を管理できます。

パラメーター TEqual により、型 T の 2 つの要素の等値関数を定義する手段が提供されます。 CSimpleMapEqualHelper に似たクラスを作成することで、特定の配列の等値テストの動作を変更できます。 たとえば、ポインターの配列を処理する場合は、ポインターが参照する値に応じて等値を定義すると便利な場合があります。 既定の実装では、operator==() が使用されます。

以前の ATL リリースとの互換性のために CSimpleMapCSimpleArray の両方が提供され、より完全で効率的なコレクションの実装として CAtlArrayCAtlMap が提供されます。

ATL と MFC の他のマップ コレクションとは異なり、このクラスはシンプルな配列で実装されているため、検索には線形探索が必要です。 配列に多数の要素が含まれる場合は、CAtlMap を使用する必要があります。

要件

ヘッダー: atlsimpcoll.h

// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;   

CSimpleMap::Add

キーと関連付けられた値をマップ配列に追加します。

BOOL Add(const TKey& key, const TVal& val);

パラメーター

key
キー。

val
関連付けられる値。

戻り値

キーと値が正常に追加された場合は TRUE、それ以外の場合は FALSE が返されます。

解説

キーと値の各ペアを追加すると、それぞれのデータが常に連続して格納されるように、マッピング配列のメモリが解放されて再割り当てされます。 つまり、2 番目のキー要素は、メモリ内で常に最初のキー要素の直後に続き、その他も同様です。

CSimpleMap::_ArrayElementType

キー型の typedef。

typedef TVal _ArrayElementType;

CSimpleMap::_ArrayKeyType

値型の typedef。

typedef TKey _ArrayKeyType;

CSimpleMap::CSimpleMap

コンストラクター。

CSimpleMap();

解説

データ メンバーを初期化します。

CSimpleMap::~CSimpleMap

デストラクター。

~CSimpleMap();

解説

割り当てられているすべてのリソースを解放します。

CSimpleMap::FindKey

特定のキーを検索します。

int FindKey(const TKey& key) const;

パラメーター

key
検索するキー。

戻り値

見つかった場合はキーのインデックスを返し、それ以外の場合は -1 を返します。

CSimpleMap::FindVal

特定の値を検索します。

int FindVal(const TVal& val) const;

パラメーター

val
検索する値。

戻り値

見つかった場合は値のインデックスを返し、それ以外の場合は -1 を返します。

CSimpleMap::GetKeyAt

指定したインデックスにあるキーを取得します。

TKey& GetKeyAt(int nIndex) const;

パラメーター

nIndex
返すキーのインデックス。

戻り値

nIndex によって参照されるキーを返します。

解説

戻り値が意味を持つには、nIndex によって渡されるインデックスが有効である必要があります。

CSimpleMap::GetSize

マッピング配列内のエントリの数を返します。

int GetSize() const;

戻り値

マッピング配列内のエントリの数 (キーと値は 1 つのエントリ) を返します。

CSimpleMap::GetValueAt

特定のインデックスにある値を取得します。

TVal& GetValueAt(int nIndex) const;

パラメーター

nIndex
返す値のインデックス。

戻り値

nIndex によって参照される値を返します。

解説

戻り値が意味を持つには、nIndex によって渡されるインデックスが有効である必要があります。

CSimpleMap::Lookup

指定したキーに関連付けられている値を返します。

TVal Lookup(const TKey& key) const;

パラメーター

key
キー。

戻り値

関連付けられている値を返します。 一致するキーが見つからない場合は、NULL が返されます。

CSimpleMap::Remove

キーと一致する値を削除します。

BOOL Remove(const TKey& key);

パラメーター

key
キー。

戻り値

キーと一致する値が正常に削除された場合は TRUE、それ以外の場合は FALSE が返されます。

CSimpleMap::RemoveAll

すべてのキーと値を削除します。

void RemoveAll();

解説

マッピング配列オブジェクトからすべてのキーと値を削除します。

CSimpleMap::RemoveAt

指定したインデックスにある、キーと関連付けられている値を削除します。

BOOL RemoveAt(int nIndex);

パラメーター

nIndex
削除するキーと関連付けられている値のインデックス。

戻り値

成功した場合は TRUE を返し、指定したインデックスが無効なインデックスの場合は FALSE を返します。

CSimpleMap::ReverseLookup

指定した値に関連付けられているキーを返します。

TKey ReverseLookup(const TVal& val) const;

パラメーター

val
値。

戻り値

関連付けられているキーを返します。 一致するキーが見つからない場合は、NULL が返されます。

CSimpleMap::SetAt

指定したキーに関連付けられる値を設定します。

BOOL SetAt(const TKey& key, const TVal& val);

パラメーター

key
キー。

val
割り当てる新しい値。

戻り値

キーが見つかり、その値が正常に変更された場合は TRUE、それ以外の場合は FALSE を返します。

CSimpleMap::SetAtIndex

指定したインデックスにあるキーと値を設定します。

BOOL SetAtIndex(
    int nIndex,
    const TKey& key,
    const TVal& val);

パラメーター

nIndex
変更するキーと値のペアを参照するインデックス。

キー
新しいキー。

val
新しい値です。

戻り値

成功した場合は TRUE、インデックスが無効な場合は FALSE を返します。

解説

nIndex が指すキーと値の両方を更新します。

関連項目

クラスの概要