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
的详细信息,请参阅文章集合。
继承层次结构
CMapStringToString
要求
标头:afxcoll.h
CMapStringToString::CPair
包含键值和关联字符串对象的值。
备注
这是类 CMapStringToString 中的嵌套结构。
该结构由两个字段组成:
key
:键类型的实际值。value
关联对象的值。
它用于存储 CMapStringToString::PLookup、CMapStringToString::PGetFirstAssoc 和 CMapStringToString::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
指向上一个 PGetNextAssoc 或 PGetFirstAssoc 调用返回的映射条目。
返回值
指向映射中下一个条目;请参阅 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);
}