CMapStringToString 类

支持 CString 对象键控的 CString 对象的映射。

语法

class CMapStringToString : public CObject

成员

CMapStringToString 的成员函数类似于 CMapStringToOb 类的成员函数。 由于此相似性,因此你可以使用 CMapStringToOb 参考文档获取成员函数细节。 无论你在何处看到作为返回值或 "output" 函数参数的 CObject 指针,都请将指针替换为 char。 无论你在何处看到作为 "input" 函数参数的 CObject 指针,都请替换为 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::PGetFirstAssoc 获取指向映射中第一个 CString 的指针。
CMapStringToString::PGetNextAssoc 获取指向用于迭代的下一个 CString 的指针。
CMapStringToString::PLookup 返回指向其值与指定值匹配的 CString 的指针。
CMapStringToString::RemoveAll 从此映射中移除所有元素。
CMapStringToString::RemoveKey 移除键指定的元素。
CMapStringToString::SetAt 将元素插入映射;如果找到匹配键,则替换现有元素。

公共运算符

“属性” 描述
CMapStringToString::operator [ ] 将元素插入映射 - SetAt 的运算符替换。

备注

CMapStringToString 包括用于支持其元素序列化和转储的 IMPLEMENT_SERIAL 宏。 如果使用重载插入 (<<) 运算符或 Serialize 成员函数将映射存储到存档中,则将依次序列化每个元素。

如果需要转储单个 CString- CString 元素,必须将转储上下文的深度设置为 1 或更大的值。

当删除 CMapStringToString 对象或其元素时,将删除 CString 对象。

有关 CMapStringToString 的详细信息,请参阅文章集合

继承层次结构

CObject

CMapStringToString

要求

标头:afxcoll.h

CMapStringToString::CPair

包含键值和关联字符串对象的值。

备注

这是类 CMapStringToString 中的嵌套结构。

该结构由两个字段组成:

  • key:键类型的实际值。

  • value 关联对象的值。

它用于存储 CMapStringToString::PLookupCMapStringToString::PGetFirstAssocCMapStringToString::PGetNextAssoc 的返回值。

示例

有关用法示例,请参阅 CMapStringToString::PLookup 的示例。

CMapStringToString::PGetFirstAssoc

返回映射对象的第一个条目。

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::PGetNextAssoc

检索 pAssocRec 指向的映射元素。

const CPair *PGetNextAssoc(const CPair* pAssoc) const;

CPair *PGetNextAssoc(const CPair* pAssoc);

参数

pAssoc
指向上一个 PGetNextAssocPGetFirstAssoc 调用返回的映射条目。

返回值

指向映射中下一个条目;请参阅 CMapStringToString::CPair。 如果元素是映射中的最后一个元素,则值为 NULL。

注解

调用此方法以循环访问映射中的所有元素。 通过调用 PGetFirstAssoc 检索第一个元素,然后通过连续调用 PGetNextAssoc 循坏访问映射。

示例

请参阅 CMapStringToString::PGetFirstAssoc 的示例。

CMapStringToString::PLookup

查找映射到给定键的值。

const CPair* PLookup(LPCTSTR key) const;

CPair* PLookup(LPCTSTR key);

参数


指向要搜索的元素的键的指针。

返回值

指向指定键的指针。

注解

调用此方法可搜索具有与给定键完全匹配的键的映射元素。

示例

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 类
层次结构图