Класс CSimpleMap
Этот класс обеспечивает поддержку простого массива сопоставления.
Синтаксис
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.