Partilhar via


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