Partilhar via


Classe CRBMap

Essa classe representa uma estrutura de mapeamento usando uma árvore binária Red-Black.

Sintaxe

template <typename K,
          typename V,
          class KTraits = CElementTraits<K>,
          class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>

Parâmetros

K
O tipo de elemento key.

V
O tipo de elemento valor.

KTraits
O código usado para copiar ou mover elementos de chave. Confira a classe CElementTraits para obter mais detalhes.

VTraits
O código usado para copiar ou mover elementos valor.

Membros

Construtores públicos

Nome Descrição
CRBMap::CRBMap O construtor .
CRBMap::~CRBMap O destruidor.

Métodos públicos

Nome Descrição
CRBMap::Lookup Chame esse método para pesquisar chaves ou valores no objeto CRBMap.
CRBMap::RemoveKey Chame esse método para remover um elemento do objeto CRBMap, dada a chave.
CRBMap::SetAt Chame esse método para inserir um par de elementos no mapa.

Comentários

A CRBMap fornece suporte para uma matriz de mapeamento de qualquer tipo específico, gerenciando uma matriz não ordenada de elementos de chave e seus valores associados. Cada chave pode ter apenas um valor associado. Os elementos (que consistem em uma chave e um valor) são armazenados em uma estrutura de árvore binária, usando o método CRBMap::SetAt. Os elementos podem ser removidos usando o método CRBMap::RemoveKey, que exclui o elemento com o valor de chave fornecido.

A passagem pela árvore é possível com métodos como CRBTree::GetHeadPosition, CRBTree::GetNext e CRBTree::GetNextValue.

Os parâmetros KTraits e VTraits são classes de características que contêm qualquer código suplementar necessário para copiar ou mover elementos.

A CRBMap é derivada da CRBTree, que implementa uma árvore binária usando o algoritmo Red-Black. A CRBMultiMap é uma variação que permite vários valores para cada chave. Ela também é derivada de CRBTree e, portanto, compartilha muitos recursos com CRBMap.

Uma alternativa a CRBMap e CRBMultiMap é oferecida pela classe CAtlMap. Quando apenas um pequeno número de elementos precisar ser armazenado, considere usar a classe CSimpleMap.

Para obter uma discussão mais completa sobre as várias classes de coleção e seus recursos e características de desempenho, confira Classes de coleção da ATL.

Hierarquia de herança

CRBTree

CRBMap

Requisitos

Cabeçalho: atlcoll.h

CRBMap::CRBMap

O construtor .

explicit CRBMap(size_t nBlockSize = 10) throw();

Parâmetros

nBlockSize
O tamanho do bloco.

Comentários

O parâmetro nBlockSize é uma medida da quantidade de memória alocada quando um novo elemento é necessário. Tamanhos de bloco maiores reduzem as chamadas às rotinas de alocação de memória, mas usam mais recursos. O padrão alocará espaço para 10 elementos por vez.

Confira a documentação da classe base CRBTree para obter informações sobre os outros métodos disponíveis.

Exemplo

// Define a map object which has an
// integer key, a double value, and a
// block size of 5
CRBMap<int, double> myMap(5);

CRBMap::~CRBMap

O destruidor.

~CRBMap() throw();

Comentários

Libera todos os recursos alocados.

Confira a documentação da classe base CRBTree para obter informações sobre os outros métodos disponíveis.

CRBMap::Lookup

Chame esse método para pesquisar chaves ou valores no objeto CRBMap.

bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();

Parâmetros

chave
Especifica a chave que identifica o elemento a ser pesquisado.

value
Variável que recebe o valor pesquisado.

Valor de retorno

A primeira forma do método retornará true se a chave for encontrada, caso contrário, false. A segunda e a terceira formas retornam um ponteiro para um CPair.

Comentários

Confira a documentação da classe base CRBTree para obter informações sobre os outros métodos disponíveis.

Exemplo

// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);

CRBMap::RemoveKey

Chame esse método para remover um elemento do objeto CRBMap, dada a chave.

bool RemoveKey(KINARGTYPE key) throw();

Parâmetros

chave
A chave correspondente ao par de elementos que você deseja remover.

Valor de retorno

Retorna true se a chave for encontrada e removida, false no caso de falha.

Comentários

Confira a documentação da classe base CRBTree para obter informações sobre os outros métodos disponíveis.

Exemplo

// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);

CRBMap::SetAt

Chame esse método para inserir um par de elementos no mapa.

POSITION SetAt(
    KINARGTYPE key,
    VINARGTYPE value) throw(...);

Parâmetros

chave
O valor da chave a ser adicionado ao objeto CRBMap.

value
O valor a ser adicionado ao objeto CRBMap.

Valor de retorno

Retorna a posição do par de elementos chave/valor no objeto CRBMap.

Comentários

SetAt substitui um elemento existente se uma chave correspondente for encontrada. Se a chave não for encontrada, um novo par chave/valor será criado.

Confira a documentação da classe base CRBTree para obter informações sobre os outros métodos disponíveis.

Exemplo

// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);

Confira também

Classe CRBTree
Classe CAtlMap
Classe CRBMultiMap
Visão geral da aula