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


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::CRBMultiMap

Конструктор.

CRBMultiMap::~CRBMultiMap

Деструктор.

Открытые методы

Имя

Описание

CRBMultiMap::FindFirstWithKey

Вызовите этот метод, чтобы найти позиция первого элемента с указанным ключом.

CRBMultiMap::GetNextValueWithKey

Этот метод вызывается для получения значения, связанного с данным ключом, и обновите значение позиции.

CRBMultiMap::GetNextWithKey

Вызовите этот метод, чтобы получить элемент, связанный с данным ключом, и обновите значение позиции.

CRBMultiMap::Insert

Вызовите этот метод, чтобы вставить пару элемента в сопоставление.

CRBMultiMap::RemoveKey

Вызовите этот метод, чтобы удалить все элементы ключ/значение для заданного ключа.

Заметки

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.

Иерархия наследования

CRBTree

CRBMultiMap

Требования

Header: atlcoll.h

См. также

Ссылки

CRBTree Class

CAtlMap Class

CRBMap Class

Другие ресурсы

ATL Class Overview