Classe CTypedPtrMap
Fornece um "wrapper" fortemente tipado para objetos das classes de mapa de ponteiro CMapPtrToPtr
, CMapPtrToWord
, CMapWordToPtr
e CMapStringToPtr
.
Sintaxe
template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS
Parâmetros
BASE_CLASS
Classe base da classe de mapa de ponteiro tipada; deve ser uma classe de mapa de ponteiro (CMapPtrToPtr
, CMapPtrToWord
, CMapWordToPtr
ou CMapStringToPtr
).
KEY
Classe do objeto usado como a chave para o mapa.
VALUE
Classe do objeto armazenado no mapa.
Membros
Métodos públicos
Nome | Descrição |
---|---|
CTypedPtrMap::GetNextAssoc | Obtém o próximo elemento para iteração. |
CTypedPtrMap::Lookup | Retorna um KEY com base em um VALUE . |
CTypedPtrMap::RemoveKey | Remove um elemento especificado por uma chave. |
CTypedPtrMap::SetAt | Insere um elemento no mapa; substituirá um elemento se uma chave correspondente for encontrada. |
Operadores públicos
Nome | Descrição |
---|---|
CTypedPtrMap::operator [ ] | Insere um elemento no mapa. |
Comentários
Quando você usa CTypedPtrMap
, a instalação de verificação de tipo C++ ajuda a eliminar erros causados por tipos de ponteiro incompatíveis.
Como todas as funções CTypedPtrMap
estão embutidas, o uso desse modelo não afeta significativamente o tamanho ou a velocidade do código.
Para obter mais informações sobre como usar CTypedPtrMap
, consulte os artigos Coleções e Classes baseadas em modelo.
Hierarquia de herança
BASE_CLASS
CTypedPtrMap
Requisitos
Cabeçalho: afxtempl.h
CTypedPtrMap::GetNextAssoc
Recupera o elemento de mapa em rNextPosition
, em seguida, atualiza rNextPosition
para se referir ao próximo elemento no mapa.
void GetNextAssoc(
POSITION& rPosition,
KEY& rKey,
VALUE& rValue) const;
Parâmetros
rPosition
Especifica uma referência a um valor POSITION retornado por uma chamada GetNextAssoc
ou BASE_CLASS
::GetStartPosition anterior.
KEY
Parâmetro de modelo que especifica o tipo de chaves do mapa.
rKey
Especifica a chave retornada do elemento recuperado.
VALUE
Parâmetro de modelo que especifica o tipo de valores do mapa.
rValue
Especifica o valor retornado do elemento recuperado.
Comentários
Essa função é mais útil para iterar todos os elementos no mapa. Observe que a sequência de posição não é necessariamente a mesma que a sequência de valor de chave.
Se o elemento recuperado for o último no mapa, o novo valor será rNextPosition
definido como NULL.
Essa função embutida chama BASE_CLASS
::GetNextAssoc.
CTypedPtrMap::Lookup
Lookup
usa um algoritmo de hash para localizar rapidamente o elemento de mapa com uma chave que corresponde exatamente a ele.
BOOL Lookup(BASE_CLASS ::BASE_ARG_KEY key, VALUE& rValue) const;
Parâmetros
BASE_CLASS
Parâmetro de modelo que especifica a classe base da classe deste mapa.
chave
A chave do elemento a ser pesquisado.
VALUE
Parâmetro de modelo que especifica o tipo de valores armazenados neste mapa.
rValue
Especifica o valor retornado do elemento recuperado.
Valor de retorno
Não zero se o elemento foi encontrado; caso contrário, 0.
Comentários
Essa função embutida chama BASE_CLASS
::Lookup.
CTypedPtrMap::operator [ ]
Esse operador só pode ser usado no lado esquerdo de uma instrução de atribuição (um l-value).
VALUE& operator[ ](base_class ::base_arg_key key);
Parâmetros
VALUE
Parâmetro de modelo que especifica o tipo de valores armazenados neste mapa.
BASE_CLASS
Parâmetro de modelo que especifica a classe base da classe deste mapa.
chave
A chave do elemento a ser pesquisado ou criado no mapa.
Comentários
Se não houver nenhum elemento de mapa com a chave especificada, um novo elemento será criado. Não há nenhum equivalente "lado direito" (r-value) a esse operador porque há a possibilidade de que uma chave não seja encontrada no mapa. Use a função de membro Lookup
para recuperação de elemento.
CTypedPtrMap::RemoveKey
Essa função de membro chama BASE_CLASS
::RemoveKey.
BOOL RemoveKey(KEY key);
Parâmetros
KEY
Parâmetro de modelo que especifica o tipo de chaves do mapa.
chave
Chave para o elemento a ser removido.
Valor de retorno
Não zero se a entrada foi encontrada e removida com êxito; caso contrário, 0.
Comentários
Para comentários mais detalhados, confira CMapStringToOb::RemoveKey.
CTypedPtrMap::SetAt
Essa função membro chama BASE_CLASS
::SetAt.
void SetAt(KEY key, VALUE newValue);
Parâmetros
KEY
Parâmetro de modelo que especifica o tipo de chaves do mapa.
chave
Especifica o valor da chave do newValue.
newValue
Especifica o ponteiro de objeto que é o valor do novo elemento.
Comentários
Para comentários mais detalhados, confira CMapStringToOb::SetAt.
Confira também
COLLECT de amostra MFC
Gráfico da hierarquia
Classe CMapPtrToPtr
Classe CMapPtrToWord
Classe CMapWordToPtr
Classe CMapStringToPtr