CRBMultiMap Class
Этот класс представляет структуру сопоставления, которая позволяет каждый ключ может быть связан с несколькими значениями, используя Красн- Черное бинарный дерево.
template<
typename K,
typename V,
class KTraits = CElementTraits< K >,
class VTraits = CElementTraits< V >
> class CRBMultiMap : public CRBTree< K, V, KTraits, VTraits >
Параметры
K
Тип ключевого положения.V
Тип значения.KTraits
Код, используемый для копирования или перемещения ключевые элементы. Дополнительные сведения см. в разделе класс CElementTraits.VTraits
Код, используемый для копирования или перемещения элементов значения.
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Конструктор. |
|
Деструктор. |
Открытые методы
Имя |
Описание |
---|---|
Вызовите этот метод, чтобы найти позиция первого элемента с указанным ключом. |
|
Этот метод вызывается для получения значения, связанного с данным ключом, и обновите значение позиции. |
|
Вызовите этот метод, чтобы получить элемент, связанный с данным ключом, и обновите значение позиции. |
|
Вызовите этот метод, чтобы вставить пару элемента в сопоставление. |
|
Вызовите этот метод, чтобы удалить все элементы ключ/значение для заданного ключа. |
Заметки
CRBMultiMap обеспечивает поддержку массивов сопоставления любого заданного типа, управление упорядоченный массив ключевых положений и значений. В отличие от класса CRBMap каждый ключ может быть связан с несколькими значениями.
Элементы (состоящ из ключа и значения) хранятся в структуре дерева бинарный дерева, используя метод CRBMultiMap::Insert. Элементы могут быть удалены с помощью метода CRBMultiMap::RemoveKey, который удаляет все элементы, которые соответствуют заданный ключ.
Обход дерева становится возможным с методами, как CRBTree::GetHeadPosition, CRBTree::GetNext и CRBTree::GetNextValue. Доступ к потенциально несколько значений, в котором использование методов CRBMultiMap::FindFirstWithKey ключ, CRBMultiMap::GetNextValueWithKey и CRBMultiMap::GetNextWithKey. См. пример для CRBMultiMap::CRBMultiMap для иллюстрации этого на практике.
Параметры KTraits и признаков VTraits классы, содержащие любой дополнительный код необходимо копировать или перемещать элементы.
CRBMultiMap является производным от CRBTree, который реализует бинарный дерево с помощью Красн- Черный алгоритм. Альтернативой CRBMultiMap и CRBMap предложена классом CAtlMap. Когда небольшое количество элементов должны храниться рекомендуется использовать класс CSimpleMap.
Для более полного обсуждения различных классов коллекций и их функции и характеристик производительности см. в разделе Классы коллекций библиотеку ATL.
Иерархия наследования
CRBMultiMap
Требования
Header: atlcoll.h