Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Этот класс обеспечивает поддержку простого массива сопоставления.
Синтаксис
template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap
Параметры
TKey
Тип ключевого элемента.
TVal
Тип элемента value.
TEqual
Объект признака, определяющий тест равенства для элементов типа T.
Участники
Общедоступные определения типов
| Имя | Описание |
|---|---|
| CSimpleMap::_ArrayElementType | Typedef для типа значения. |
| CSimpleMap::_ArrayKeyType | Typedef для типа ключа. |
Открытые конструкторы
| Имя | Описание |
|---|---|
| CSimpleMap::CSimpleMap | Конструктор. |
| CSimpleMap::~CSimpleMap | Деструктор |
Открытые методы
| Имя | Описание |
|---|---|
| CSimpleMap::Add | Добавляет ключ и связанное значение в массив карт. |
| CSimpleMap::FindKey | Находит определенный ключ. |
| CSimpleMap::FindVal | Находит определенное значение. |
| CSimpleMap::GetKeyAt | Извлекает указанный ключ. |
| CSimpleMap::GetSize | Возвращает количество записей в массиве сопоставления. |
| CSimpleMap::GetValueAt | Извлекает указанное значение. |
| CSimpleMap::Lookup | Возвращает значение, связанное с заданным ключом. |
| CSimpleMap::Remove | Удаляет ключ и соответствующее значение. |
| CSimpleMap::RemoveAll | Удаляет все ключи и значения. |
| CSimpleMap::RemoveAt | Удаляет определенный ключ и соответствующее значение. |
| CSimpleMap::ReverseLookup | Возвращает ключ, связанный с заданным значением. |
| CSimpleMap::SetAt | Задает значение, связанное с заданным ключом. |
| CSimpleMap::SetAtIndex | Задает определенный ключ и значение. |
Замечания
CSimpleMap обеспечивает поддержку простого массива сопоставлений любого типа T, управления неупорядоченным массивом ключевых элементов и связанных с ними значений.
TEqual Параметр предоставляет средства определения функции равенства для двух элементов типаT. Создав класс, аналогичный CSimpleMapEqualHelper, можно изменить поведение теста равенства для любого заданного массива. Например, при работе с массивом указателей может быть полезно определить равенство в зависимости от значений ссылки указателей. Реализация по умолчанию использует оператор==().
CSimpleMap Оба и CSimpleArray предоставляются для обеспечения совместимости с предыдущими выпусками ATL, а более полные и эффективные реализации коллекций предоставляются CAtlArray и CAtlMap.
В отличие от других коллекций карт в ATL и MFC, этот класс реализуется с простым массивом, а поиски подстановки требуют линейного поиска.
CAtlMap следует использовать, если массив содержит большое количество элементов.
Требования
Заголовок: atlsimpcoll.h
Пример
// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;
CSimpleMap::Add
Добавляет ключ и связанное значение в массив карт.
BOOL Add(const TKey& key, const TVal& val);
Параметры
key
Ключ.
Val
Связанное значение.
Возвращаемое значение
Возвращает значение TRUE, если ключ и значение были успешно добавлены, значение FALSE в противном случае.
Замечания
Каждая пара ключей и значений приводит к освобождению и перераспределению памяти массива сопоставления, чтобы гарантировать, что данные для каждого из них всегда хранятся непрерывно. То есть второй ключевой элемент всегда следует первому ключевому элементу в памяти и т. д.
CSimpleMap::_ArrayElementType
Типдифактируемый тип для типа ключа.
typedef TVal _ArrayElementType;
CSimpleMap::_ArrayKeyType
Типдеф для типа значения.
typedef TKey _ArrayKeyType;
CSimpleMap::CSimpleMap
Конструктор.
CSimpleMap();
Замечания
Инициализирует элементы данных.
CSimpleMap::~CSimpleMap
Деструктор
~CSimpleMap();
Замечания
Освобождает все выделенные ресурсы.
CSimpleMap::FindKey
Находит определенный ключ.
int FindKey(const TKey& key) const;
Параметры
key
Ключ, который нужно найти.
Возвращаемое значение
Возвращает индекс ключа, если он найден, в противном случае возвращает значение -1.
CSimpleMap::FindVal
Находит определенное значение.
int FindVal(const TVal& val) const;
Параметры
Val
Значение, для которого требуется выполнить поиск.
Возвращаемое значение
Возвращает индекс значения, если он найден, в противном случае возвращает значение -1.
CSimpleMap::GetKeyAt
Извлекает ключ по указанному индексу.
TKey& GetKeyAt(int nIndex) const;
Параметры
nIndex
Индекс возвращаемого ключа.
Возвращаемое значение
Возвращает ключ, на который ссылается nIndex.
Замечания
Индекс, передаваемый nIndex, должен быть допустимым, чтобы возвращаемое значение было значимым.
CSimpleMap::GetSize
Возвращает количество записей в массиве сопоставления.
int GetSize() const;
Возвращаемое значение
Возвращает количество записей (ключ и значение — одна запись) в массиве сопоставления.
CSimpleMap::GetValueAt
Извлекает значение по определенному индексу.
TVal& GetValueAt(int nIndex) const;
Параметры
nIndex
Индекс возвращаемого значения.
Возвращаемое значение
Возвращает значение, на которое ссылается nIndex.
Замечания
Индекс, передаваемый nIndex, должен быть допустимым, чтобы возвращаемое значение было значимым.
CSimpleMap::Lookup
Возвращает значение, связанное с заданным ключом.
TVal Lookup(const TKey& key) const;
Параметры
key
Ключ.
Возвращаемое значение
Возвращает связанное значение. Если соответствующий ключ не найден, возвращается значение NULL.
CSimpleMap::Remove
Удаляет ключ и соответствующее значение.
BOOL Remove(const TKey& key);
Параметры
key
Ключ.
Возвращаемое значение
Возвращает значение TRUE, если ключ и соответствующее значение успешно удалены, значение FALSE в противном случае.
CSimpleMap::RemoveAll
Удаляет все ключи и значения.
void RemoveAll();
Замечания
Удаляет все ключи и значения из объекта массива сопоставления.
CSimpleMap::RemoveAt
Удаляет ключ и связанное значение по указанному индексу.
BOOL RemoveAt(int nIndex);
Параметры
nIndex
Индекс ключа и связанного значения для удаления.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, значение FALSE, если указанный индекс является недопустимым индексом.
CSimpleMap::ReverseLookup
Возвращает ключ, связанный с заданным значением.
TKey ReverseLookup(const TVal& val) const;
Параметры
Val
Значение типа .
Возвращаемое значение
Возвращает связанный ключ. Если соответствующий ключ не найден, возвращается значение NULL.
CSimpleMap::SetAt
Задает значение, связанное с заданным ключом.
BOOL SetAt(const TKey& key, const TVal& val);
Параметры
key
Ключ.
Val
Новое значение, которое необходимо назначить.
Возвращаемое значение
Возвращает значение TRUE, если ключ найден, и значение было успешно изменено, значение FALSE в противном случае.
CSimpleMap::SetAtIndex
Задает ключ и значение по указанному индексу.
BOOL SetAtIndex(
int nIndex,
const TKey& key,
const TVal& val);
Параметры
nIndex
Индекс, ссылающийся на пары ключей и значений для изменения.
key
Новый ключ.
Val
Новое значение.
Возвращаемое значение
Возвращает значение TRUE в случае успешного выполнения, значение FALSE, если индекс недействителен.
Замечания
Обновляет ключ и значение, на которые указывает nIndex.