Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta 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-chave.
V
O tipo de elemento valor.
KTraits
O código usado para copiar ou mover elementos-chave. Consulte a Classe CElementTraits para mais detalhes.
VTraits
O código usado para copiar ou mover elementos de valor.
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CRBMap::CRBMap | O construtor. |
| CRBMap::~CRBMap | O destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CRBMap::Pesquisa | Chame este método para procurar chaves ou valores no CRBMap objeto. |
| CRBMap::RemoveKey | Chame este método para remover um elemento do CRBMap objeto, dada a chave. |
| CRBMap::SetAt | Chame este método para inserir um par de elementos no mapa. |
Observações
CRBMap fornece suporte para um array de mapeamento de qualquer tipo, gerindo um array ordenado de elementos-chave e os seus valores associados. Cada chave pode ter apenas um valor associado. Os elementos (constituídos por uma chave e um valor) são armazenados numa estrutura de árvore binária, usando o método CRBMap::SetAt . Os elementos podem ser removidos usando o método CRBMap::RemoveKey , que elimina o elemento com o valor-chave dado.
A percorrência da árvore é possível graças a 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.
CRBMap é derivado de CRBTree, que implementa uma árvore binária usando o algoritmo Red-Black.
CRBMultiMap é uma variação que permite múltiplos valores para cada chave. Também deriva de CRBTree, e assim partilha muitas características com CRBMap.
Uma alternativa a ambos CRBMap é CRBMultiMap oferecida pela classe CAtlMap . Quando apenas um pequeno número de elementos precisa de ser armazenado, considere usar a classe CSimpleMap em vez disso.
Para uma discussão mais completa das várias classes de coleção e das suas características e características de desempenho, consulte Classes de Coleção ATL.
Hierarquia de herança
CRBMap
Requerimentos
Cabeçalho: atlcoll.h
CRBMap::CRBMap
O construtor.
explicit CRBMap(size_t nBlockSize = 10) throw();
Parâmetros
nBlockSize
O tamanho do bloco.
Observações
O parâmetro nBlockSize é uma medida da quantidade de memória alocada quando um novo elemento é necessário. Blocos maiores reduzem chamadas para rotinas de alocação de memória, mas consomem mais recursos. O padrão aloca espaço para 10 elementos de cada vez.
Consulte a documentação da classe base CRBTree para informações sobre os outros métodos disponíveis.
Example
// 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();
Observações
Liberta quaisquer recursos alocados.
Consulte a documentação da classe base CRBTree para informações sobre os outros métodos disponíveis.
CRBMap::Pesquisa
Chame este método para procurar chaves ou valores no CRBMap objeto.
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 consultar.
value
Variável que recebe o valor consultado.
Valor de retorno
A primeira forma do método retorna verdadeira se a chave for encontrada, caso contrário falsa. A segunda e terceira formas devolvem um indicador para um CPair.
Observações
Consulte a documentação da classe base CRBTree para informações sobre os outros métodos disponíveis.
Example
// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);
CRBMap::RemoveKey
Chame este método para remover um elemento do CRBMap objeto, dada a chave.
bool RemoveKey(KINARGTYPE key) throw();
Parâmetros
chave
A chave correspondente ao par de elementos que queres remover.
Valor de retorno
Retorna true se a chave for encontrada e removida, false em caso de falha.
Observações
Consulte a documentação da classe base CRBTree para informações sobre os outros métodos disponíveis.
Example
// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);
CRBMap::SetAt
Chame este método para inserir um par de elementos no mapa.
POSITION SetAt(
KINARGTYPE key,
VINARGTYPE value) throw(...);
Parâmetros
chave
O valor-chave a acrescentar ao CRBMap objeto.
value
O valor a acrescentar ao CRBMap objeto.
Valor de retorno
Devolve a posição do par chave/valor no CRBMap objeto.
Observações
SetAt substitui um elemento existente se for encontrada uma chave correspondente. Se a chave não for encontrada, é criado um novo par chave/valor.
Consulte a documentação da classe base CRBTree para informações sobre os outros métodos disponíveis.
Example
// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);
Consulte também
CRBTree Classe
Classe CAtlMap
Classe CRBMultiMap
Visão geral da classe