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