Compartilhar via


Classe CSimpleMap

Essa classe fornece suporte para uma matriz de mapeamento simples.

Sintaxe

template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap

Parâmetros

TKey
O tipo de elemento key.

TVal
O tipo de elemento valor.

TEqual
Um objeto de característica, definindo o teste de igualdade para elementos do tipo T.

Membros

Typedefs públicos

Nome Descrição
CSimpleMap::_ArrayElementType Typedef para o tipo de valor.
CSimpleMap::_ArrayKeyType Typedef para o tipo de chave.

Construtores públicos

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

Métodos públicos

Nome Descrição
CSimpleMap::Add Adiciona uma chave e o valor associado à matriz de mapa.
CSimpleMap::FindKey Localiza uma chave específica.
CSimpleMap::FindVal Localiza um valor específico.
CSimpleMap::GetKeyAt Recupera a chave especificada.
CSimpleMap::GetSize Retorna o número de entradas na matriz de mapeamento.
CSimpleMap::GetValueAt Recupera o valor especificado.
CSimpleMap::Lookup Obtém ou define o valor associado à chave especificada.
CSimpleMap::Lookup Remove uma chave e um valor correspondente.
CSimpleMap::RemoveAll Remove todas as chaves e valores.
CSimpleMap::RemoveAt Remove uma chave específica e um valor correspondente.
CSimpleMap::ReverseLookup Retorna a chave associada ao valor especificado.
CSimpleMap::SetAt Define o valor associado à chave especificada.
CSimpleMap::SetAtIndex Define a chave e o valor específicos.

Comentários

CSimpleMap fornece suporte para uma matriz de mapeamento simples de qualquer tipo Tespecífico, gerenciando uma matriz não ordenada de elementos de chave e seus valores associados.

O parâmetro TEqual fornece um meio de definir uma função de igualdade para dois elementos do tipo T. Ao criar uma classe semelhante a CSimpleMapEqualHelper, é possível alterar o comportamento do teste de igualdade para qualquer matriz específica. Por exemplo, ao lidar com uma matriz de ponteiros, pode ser útil definir a igualdade como dependendo dos valores que os ponteiros referenciam. A implementação padrão utiliza operator==().

Tanto CSimpleMap quanto CSimpleArray são fornecidas para compatibilidade com versões anteriores da ATL, e implementações de coleção mais completas e eficientes são fornecidas por CAtlArray e CAtlMap.

Ao contrário de outras coleções de mapas na ATL e no MFC, essa classe é implementada com uma matriz simples e as pesquisas exigem uma pesquisa linear. CAtlMap deve ser usado quando a matriz contém um grande número de elementos.

Requisitos

Cabeçalho: atlsimpcoll.h

Exemplo

// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;   

CSimpleMap::Add

Adiciona uma chave e o valor associado à matriz de mapa.

BOOL Add(const TKey& key, const TVal& val);

Parâmetros

chave
A chave.

val
O valor associado.

Valor de retorno

Retornará TRUE se a chave e o valor tiverem sido adicionados com êxito, caso contrário, FALSE.

Comentários

Cada par de chave e valor adicionado faz com que a memória da matriz de mapeamento seja liberada e realocada a fim de garantir que os dados de cada um sejam sempre armazenados de modo contíguo. Ou seja, o segundo elemento de chave sempre segue diretamente o primeiro elemento de chave na memória e assim por diante.

CSimpleMap::_ArrayElementType

Um typedef para o tipo de chave.

typedef TVal _ArrayElementType;

CSimpleMap::_ArrayKeyType

Um typedef para o tipo de valor.

typedef TKey _ArrayKeyType;

CSimpleMap::CSimpleMap

O construtor .

CSimpleMap();

Comentários

Inicializa os membros de dados.

CSimpleMap::~CSimpleMap

O destruidor.

~CSimpleMap();

Comentários

Libera todos os recursos alocados.

CSimpleMap::FindKey

Localiza uma chave específica.

int FindKey(const TKey& key) const;

Parâmetros

chave
A chave a ser pesquisada.

Valor de retorno

Retorna o índice da chave, se encontrado, caso contrário, retorna -1.

CSimpleMap::FindVal

Localiza um valor específico.

int FindVal(const TVal& val) const;

Parâmetros

val
O valor pelo qual pesquisar.

Valor de retorno

Retorna o índice do valor se ele for encontrado, caso contrário, retornará -1.

CSimpleMap::GetKeyAt

Recupera a chave no índice especificado.

TKey& GetKeyAt(int nIndex) const;

Parâmetros

nIndex
O índice da chave a ser retornada.

Valor de retorno

Retorna a chave referenciada por nIndex.

Comentários

O índice passado por nIndex deve ser válido para que o valor retornado seja significativo.

CSimpleMap::GetSize

Retorna o número de entradas na matriz de mapeamento.

int GetSize() const;

Valor de retorno

Retorna o número de entradas (uma chave e um valor é uma entrada) na matriz de mapeamento.

CSimpleMap::GetValueAt

Recupera o valor no índice específico.

TVal& GetValueAt(int nIndex) const;

Parâmetros

nIndex
O índice do valor a ser retornado.

Valor de retorno

Retorna o valor referenciado por nIndex.

Comentários

O índice passado por nIndex deve ser válido para que o valor retornado seja significativo.

CSimpleMap::Lookup

Obtém ou define o valor associado à chave especificada.

TVal Lookup(const TKey& key) const;

Parâmetros

chave
A chave.

Valor de retorno

Retorna o valor associado. Se nenhuma chave correspondente for encontrada, será retornado NULL.

CSimpleMap::Remove

Remove uma chave e um valor correspondente.

BOOL Remove(const TKey& key);

Parâmetros

chave
A chave.

Valor de retorno

Retornará TRUE se a chave e o valor correspondente forem removidos com êxito, caso contrário, FALSE.

CSimpleMap::RemoveAll

Remove todas as chaves e valores.

void RemoveAll();

Comentários

Remove todas as chaves e valores do objeto da matriz de mapeamento.

CSimpleMap::RemoveAt

Remove uma chave e um valor associado no índice especificado.

BOOL RemoveAt(int nIndex);

Parâmetros

nIndex
O índice da chave e o valor associado a serem removidos.

Valor de retorno

Retorna TRUE se houver êxito, FALSE se o índice especificado for um índice inválido.

CSimpleMap::ReverseLookup

Retorna a chave associada ao valor especificado.

TKey ReverseLookup(const TVal& val) const;

Parâmetros

val
O valor .

Valor de retorno

Retorna a chave associada. Se nenhuma chave correspondente for encontrada, será retornado NULL.

CSimpleMap::SetAt

Define o valor associado à chave especificada.

BOOL SetAt(const TKey& key, const TVal& val);

Parâmetros

chave
A chave.

val
O novo valor a ser atribuído.

Valor de retorno

Retornará TRUE se a chave tiver sido encontrada e o valor alterado com êxito, caso contrário, FALSE.

CSimpleMap::SetAtIndex

Define a chave e o valor em um índice especificado.

BOOL SetAtIndex(
    int nIndex,
    const TKey& key,
    const TVal& val);

Parâmetros

nIndex
O índice, que faz referência ao emparelhamento de chave e valor a ser alterado.

chave
A nova chave.

val
O novo valor.

Valor de retorno

Retornará TRUE se tiver êxito, FALSE se o índice não for válido.

Comentários

Atualiza a chave e o valor apontados por nIndex.

Confira também

Visão geral da aula