Поделиться через


Класс 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.

См. также

Общие сведения о классе