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 リリースとの互換性のために CSimpleMap
と CSimpleArray の両方が提供され、より完全で効率的なコレクションの実装として CAtlArray と CAtlMap が提供されます。
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 が指すキーと値の両方を更新します。