Classe CRBMultiMap
Esta classe representa uma estrutura de mapeamento que permite que cada chave pode ser associado a mais de um valor, usando um vermelho-preto binário árvore.
template<
typename K,
typename V,
class KTraits = CElementTraits< K >,
class VTraits = CElementTraits< V >
> class CRBMultiMap : public CRBTree< K, V, KTraits, VTraits >
Parâmetros
K
O tipo de elemento-chave.V
O tipo de valor do elemento.KTraits
O código usado para copiar ou mover elementos-chave.See Classe CElementTraits para obter mais detalhes.VTraits
O código usado para copiar ou mover elementos valor.
Comentários
CRBMultiMap oferece suporte a uma matriz de mapeamento de qualquer tipo de dado, gerenciando uma matriz ordenada de elementos-chave e valores. Ao contrário de CRBMap classe, cada chave pode ser associado com mais de um valor.
Elementos (consistindo em uma chave e um valor) são armazenados em uma estrutura de árvore binária, usando o CRBMultiMap::Insert método.Elementos podem ser removidos usando o CRBMultiMap::RemoveKey método, que exclui todos os elementos que corresponder à chave determinada.
Percorrer a árvore é possibilitada com métodos sistema autônomo, por exemplo, CRBTree::GetHeadPosition, CRBTree::GetNext, and CRBTree::GetNextValue.Acessando o potencialmente vários valores de chaves por é possível usar o CRBMultiMap::FindFirstWithKey, CRBMultiMap::GetNextValueWithKey, and CRBMultiMap::GetNextWithKey métodos.Consulte o exemplo para CRBMultiMap::CRBMultiMap para obter uma ilustração na prática.
The KTraits e VTraits os parâmetros são classes de características que contêm qualquer código complementar necessário para copiar ou mover elementos.
CRBMultiMap é derivado de CRBTree, que implementa uma árvore binária usando o algoritmo de Red-preta.Uma alternativa para CRBMultiMap e CRBMap é oferecido pela CAtlMap classe.Quando apenas um pequeno número de elementos precisa ser armazenado, utilize o CSimpleMap classe em vez disso.
Para uma discussão mais completa de várias classes de coleção e seus recursos e características de desempenho, consulte Classes de coleção do ATL.
Requisitos
Cabeçalho: atlcoll.h