Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет типобезопасную "программу-оболочку" для объектов классов карты указателей CMapPtrToPtr
, CMapPtrToWord
, CMapWordToPtr
и CMapStringToPtr
.
Синтаксис
template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS
Параметры
BASE_CLASS
Базовый класс класса типизированной карты указателя; должен быть классом карты указателя (CMapPtrToPtr
, , CMapPtrToWord
CMapWordToPtr
илиCMapStringToPtr
).
КЛЮЧ
Класс объекта, используемого в качестве ключа для карты.
ЗНАЧЕНИЕ
Класс объекта, хранящегося на карте.
Участники
Открытые методы
Имя | Описание |
---|---|
CTypedPtrMap::GetNextAssoc | Возвращает следующий элемент для итерации. |
CTypedPtrMap::Lookup | Возвращает значение KEY на VALUE основе . |
CTypedPtrMap::RemoveKey | Удаляет элемент, указанный ключом. |
CTypedPtrMap::SetAt | Вставляет элемент в карту; заменяет существующий элемент, если найден соответствующий ключ. |
Открытые операторы
Имя | Описание |
---|---|
CTypedPtrMap::operator [ ] | Вставляет элемент в карту. |
Замечания
При использовании CTypedPtrMap
средство проверки типов C++ помогает устранить ошибки, вызванные несоответствием типов указателей.
Так как все CTypedPtrMap
функции являются встроенными, использование этого шаблона значительно не влияет на размер или скорость кода.
Дополнительные сведения об использовании CTypedPtrMap
см. в статьях коллекции и классы на основе шаблонов.
Иерархия наследования
BASE_CLASS
CTypedPtrMap
Требования
Заголовок: afxtempl.h
CTypedPtrMap::GetNextAssoc
Извлекает элемент rNextPosition
карты по адресу, а затем обновляется rNextPosition
, чтобы ссылаться на следующий элемент в карте.
void GetNextAssoc(
POSITION& rPosition,
KEY& rKey,
VALUE& rValue) const;
Параметры
rPosition
Указывает ссылку на значение POSITION, возвращаемое предыдущим GetNextAssoc
или BASE_CLASS
вызовом ::GetStartPosition .
КЛЮЧ
Параметр шаблона, указывающий тип ключей карты.
rKey
Указывает возвращаемый ключ извлеченного элемента.
ЗНАЧЕНИЕ
Параметр шаблона, указывающий тип значений карты.
rValue
Указывает возвращаемое значение извлеченного элемента.
Замечания
Эта функция наиболее полезна для итерации всех элементов в карте. Обратите внимание, что последовательность позиций не обязательно совпадает с последовательностью значений ключа.
Если полученный элемент является последним в карте, новое значение имеет значение rNextPosition
NULL.
Эта встроенная функция вызывает BASE_CLASS
::GetNextAssoc.
CTypedPtrMap::Lookup
Lookup
использует алгоритм хэширования для быстрого поиска элемента карты с ключом, соответствующим точно.
BOOL Lookup(BASE_CLASS ::BASE_ARG_KEY key, VALUE& rValue) const;
Параметры
BASE_CLASS
Параметр шаблона, указывающий базовый класс этого класса карты.
ключ
Ключ элемента, который необходимо найти.
ЗНАЧЕНИЕ
Параметр шаблона, указывающий тип значений, хранящихся на этой карте.
rValue
Указывает возвращаемое значение извлеченного элемента.
Возвращаемое значение
Ненулевое значение, если элемент найден; в противном случае — 0.
Замечания
Эта встроенная функция вызывает BASE_CLASS
::Lookup.
CTypedPtrMap::operator [ ]
Этот оператор можно использовать только в левой части инструкции присваивания (l-value).
VALUE& operator[ ](base_class ::base_arg_key key);
Параметры
ЗНАЧЕНИЕ
Параметр шаблона, указывающий тип значений, хранящихся на этой карте.
BASE_CLASS
Параметр шаблона, указывающий базовый класс этого класса карты.
ключ
Ключ элемента, который нужно найти или создать на карте.
Замечания
Если элемент map с указанным ключом отсутствует, создается новый элемент. Нет эквивалента "правой стороны" (r-value) этому оператору, так как существует вероятность того, что ключ не найден на карте. Используйте функцию-член Lookup
для извлечения элементов.
CTypedPtrMap::RemoveKey
Эта функция-член вызывает BASE_CLASS
::RemoveKey.
BOOL RemoveKey(KEY key);
Параметры
КЛЮЧ
Параметр шаблона, указывающий тип ключей карты.
ключ
Ключ для удаления элемента.
Возвращаемое значение
Ненулевое значение, если запись найдена и успешно удалена; в противном случае — 0.
Замечания
Дополнительные замечания см. в разделе CMapStringToOb::RemoveKey.
CTypedPtrMap::SetAt
Эта функция-член вызывает BASE_CLASS
::SetAt.
void SetAt(KEY key, VALUE newValue);
Параметры
КЛЮЧ
Параметр шаблона, указывающий тип ключей карты.
ключ
Указывает ключевое значение newValue.
newValue
Указывает указатель объекта, который является значением нового элемента.
Замечания
Дополнительные замечания см. в разделе CMapStringToOb::SetAt.
См. также
Пример MFC COLLECT
Диаграмма иерархии
Класс CMapPtrToPtr
Класс CMapPtrToWord
Класс CMapWordToPtr
Класс CMapStringToPtr