次の方法で共有


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に関する記事を参照してください。

継承階層

CObject

CMapStringToString

要件

Header: afxcoll.h

CMapStringToString::CPair

キー値と、関連付けられている文字列オブジェクトの値を格納します。

解説

これは、クラス CMapStringToString 内の入れ子になった構造体です。

構造は、次の 2 つのフィールドで構成されます。

  • key キー型の実際の値。

  • value 関連付けられているオブジェクトの値。

これは、 CMapStringToString::P LookupCMapStringToString::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);
}

関連項目

MFC サンプル COLLECT
CObject クラス
階層図