Класс CMapStringToString
Поддерживает сопоставления объектов CString
, зашифрованных объектами CString
.
Синтаксис
class CMapStringToString : public CObject
Участники
Функции-члены похожи на функции-члены CMapStringToString
класса CMapStringToOb. Из-за этой схожести для изучения этой функции-члена можно использовать справочную документацию по классу CMapStringToOb
. Где бы вы ни видели CObject
указатель как возвращаемое значение или параметр функции output, замените указатель на 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 [ ] | Вставляет элемент в карту — подстановку SetAt оператора. |
Замечания
CMapStringToString
использует макрос IMPLEMENT_SERIAL
для поддержки сериализации и записи элементов в дамп. Каждый элемент сериализуется в свою очередь, если карта хранится в архиве, либо с перегруженным оператором вставки ( <<) или функцией-членом Serialize
.
Если вам нужен дамп отдельных CString
- CString
элементов, необходимо задать глубину контекста дампа значение 1 или больше.
CMapStringToString
При удалении объекта или при удалении CString
его элементов объекты удаляются соответствующим образом.
Дополнительные сведения CMapStringToString
см. в статьях "Коллекции".
Иерархия наследования
CMapStringToString
Требования
Заголовок: afxcoll.h
CMapStringToString::CPair
Содержит значение ключа и значение связанного строкового объекта.
Замечания
Это вложенная структура класса CMapStringToString.
Структура состоит из двух полей:
key
Фактическое значение типа ключа.value
Значение связанного объекта.
Он используется для хранения возвращаемых значений из CMapStringToString::P Lookup, CMapStringToString::P GetFirstAssoc и CMapStringToString::P GetNextAssoc.
Пример
Пример использования см. в примере CMapStringToString ::P Lookup.
CMapStringToString::P GetFirstAssoc
Возвращает первую запись объекта map.
const CPair* PGetFirstAssoc() const;
CPair* PGetFirstAssoc();
Возвращаемое значение
Указатель на первую запись в карте; см. раздел CMapStringToString::CPair. Если карта пуста, значение равно NULL.
Замечания
Вызовите эту функцию, чтобы вернуть указатель на первый элемент в объекте map.
Пример
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
Указатель на ключ для поиска элемента.
Возвращаемое значение
Указатель на указанный ключ.
Замечания
Вызовите этот метод для поиска элемента карты с ключом, который точно соответствует заданному ключу.
Пример
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);
}