CMapStringToString クラス
CString
オブジェクトをキーとした CString
オブジェクトのマップをサポートします。
構文
class CMapStringToString : public CObject
メンバー
CMapStringToString
のメンバー関数は、クラス CMapStringToOb のメンバー関数に似ています。 メンバー関数については CMapStringToOb
クラスの説明を参照してください。 戻り値または "出力" 関数パラメーターとして CObject
ポインターが表示される場合は、ポインターを char
に置き換える必要があります。 CObject
ポインターが "input" 関数パラメーターとして表示される場合は、ポインターを char
に置き換える必要があります。
BOOL CMapStringToString::Lookup(LPCTSTR<key>, CString&<rValue>) const;
たとえば、次のように変換します。
BOOL CMapStringToOb::Lookup(const char*<key>, CObject*&<rValue>) const;
パブリック構造体
名前 | 説明 |
---|---|
CMapStringToString::CPair | キー値と関連付けられた文字列オブジェクトの値を含む入れ子になった構造体。 |
パブリック コンストラクター
名前 | 説明 |
---|---|
CMapStringToString::CMapStringToString | コンストラクターです。 |
パブリック メソッド
名前 | 説明 |
---|---|
CMapStringToString::GetCount | このマップ内の要素の数を返します。 |
CMapStringToString::GetHashTableSize | ハッシュ テーブル内の要素の現在の数を決定します。 |
CMapStringToString::GetNextAssoc | 次に反復処理の対象となる要素が取得されます。 |
CMapStringToString::GetSize | このマップ内の要素の数を返します。 |
CMapStringToString::GetStartPosition | 最初の要素の位置を返します。 |
CMapStringToString::HashKey | 指定したキーのハッシュ値を計算します。 |
CMapStringToString::InitHashTable | ハッシュ テーブルを初期化します。 |
CMapStringToString::IsEmpty | 空のマップ条件 (要素なし) をテストします。 |
CMapStringToString::Lookup | void ポインター キーに基づいて void ポインターを検索します。 ポインター値は、それが指すエンティティではなく、キー比較に使用されます。 |
CMapStringToString::LookupKey | 指定したキー値に関連付けられているキーへの参照を返します。 |
CMapStringToString::P GetFirstAssoc | マップ内の最初の CString へのポインターを取得します。 |
CMapStringToString::P GetNextAssoc | 反復処理のための次の CString へのポインターを取得します。 |
CMapStringToString::P Lookup | 指定した値と一致する値を持つ CString へのポインターを返します。 |
CMapStringToString::RemoveAll | このマップからすべての要素を削除します。 |
CMapStringToString::RemoveKey | キーで指定された要素を削除します。 |
CMapStringToString::SetAt | マップに要素を挿入します。は、一致するキーが見つかった場合に既存の要素を置き換えます。 |
パブリック演算子
名前 | 説明 |
---|---|
CMapStringToString::operator [ ] | map に要素を挿入します。 SetAt の演算子の置換です。 |
解説
CMapStringToString
には、IMPLEMENT_SERIAL
マクロが組み込まれており、その要素のシリアル化とダンプがサポートされます。 マップがアーカイブに格納されている場合、オーバーロードされた挿入 ( <<) 演算子または Serialize
メンバー関数を使用して、各要素が順番にシリアル化されます。
個々の CString
- CString
要素のダンプが必要な場合は、ダンプ コンテキストの深さを 1 以上に設定する必要があります。
CMapStringToString
オブジェクトが削除されたとき、またはその要素が削除されると、CString
オブジェクトは必要に応じて削除されます。
CMapStringToString
の詳細については、Collectionsに関する記事を参照してください。
継承階層
CMapStringToString
要件
Header: afxcoll.h
CMapStringToString::CPair
キー値と、関連付けられている文字列オブジェクトの値を格納します。
解説
これは、クラス CMapStringToString 内の入れ子になった構造体です。
構造は、次の 2 つのフィールドで構成されます。
key
キー型の実際の値。value
関連付けられているオブジェクトの値。
これは、 CMapStringToString::P Lookup、 CMapStringToString::P GetFirstAssoc、および CMapStringToString::P GetNextAssoc からの戻り値を格納するために使用されます。
例
使用方法の例については、 CMapStringToString::P Lookup の例を参照してください。
CMapStringToString::P GetFirstAssoc
マップ オブジェクトの最初のエントリを返します。
const CPair* PGetFirstAssoc() const;
CPair* PGetFirstAssoc();
戻り値
マップ内の最初のエントリへのポインター。「 CMapStringToString::CPair を参照してください。 マップが空の場合、値は NULL です。
解説
この関数を呼び出して、マップ オブジェクトの最初の要素をポインターで返します。
例
CMapStringToString myMap;
CString myStr[4] = {_T("One"), _T("Two"), _T("Three"), _T("Four")};
CMapStringToString::CPair *pCurVal;
myMap.InitHashTable(257);
// Add 4 elements to the map.
myMap.SetAt(myStr[0], _T("Odd"));
myMap.SetAt(myStr[1], _T("Even"));
myMap.SetAt(myStr[2], _T("Odd"));
myMap.SetAt(myStr[3], _T("Even"));
pCurVal = myMap.PGetFirstAssoc();
while (pCurVal != NULL)
{
_tprintf_s(_T("Current key value at %s: %s\n"),
pCurVal->key, pCurVal->value);
pCurVal = myMap.PGetNextAssoc(pCurVal);
}
CMapStringToString::P GetNextAssoc
pAssocRec が指すマップ要素を取得します。
const CPair *PGetNextAssoc(const CPair* pAssoc) const;
CPair *PGetNextAssoc(const CPair* pAssoc);
パラメーター
pAssoc
前の PGetNextAssoc または PGetFirstAssoc 呼び出しによって返されたマップ エントリを指します。
戻り値
マップ内の次のエントリへのポインター。「 CMapStringToString::CPair を参照してください。 要素がマップの最後の要素の場合、値は NULL です。
解説
マップ内のすべての要素を反復処理するには、このメソッドを呼び出します。 PGetFirstAssoc
の呼び出しで最初の要素を取得し、PGetNextAssoc
を連続して呼び出してマップを反復処理します。
例
CMapStringToString::P GetFirstAssoc の例を参照してください。
CMapStringToString::P Lookup
特定のキーにマップされた値を検索します。
const CPair* PLookup(LPCTSTR key) const;
CPair* PLookup(LPCTSTR key);
パラメーター
key
検索する要素のキーへのポインター。
戻り値
指定したキーへのポインター。
解説
このメソッドを呼び出して、指定されたキーと完全に一致するキーを持つ map 要素を検索します。
例
CMapStringToString myMap;
CString myStr[4] = {_T("One"), _T("Two"), _T("Three"), _T("Four")};
myMap.InitHashTable(257);
// Add 4 elements to the map.
myMap.SetAt(myStr[0], _T("Odd"));
myMap.SetAt(myStr[1], _T("Even"));
myMap.SetAt(myStr[2], _T("Odd"));
myMap.SetAt(myStr[3], _T("Even"));
// Print the element values with odd key values.
CMapStringToString::CPair *pCurVal;
for (int i = 0; i < 4; i += 2)
{
pCurVal = myMap.PLookup(myStr[i]);
_tprintf_s(_T("Current key value at %s: %s\n"),
pCurVal->key, pCurVal->value);
}