Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Microsoft Foundation Class Library fornece classes de coleção para gerenciar grupos de objetos. Estas classes são de dois tipos:
Observação
Se o seu código já usa classes de coleção que não são de modelo, você pode continuar a usá-las. Se escrever novas classes de coleções com segurança de tipos para os seus próprios tipos de dados, recomendamos que utilize as classes baseadas em templates mais recentes.
Formas de Coleção
Uma classe de coleção é caracterizada por sua "forma" e pelos tipos de seus elementos. A forma refere-se à forma como os objetos são organizados e armazenados pela coleção. MFC fornece três formas básicas de coleção: listas, matrizes e mapas (também conhecidos como dicionários). Você pode escolher a forma de coleção mais adequada ao seu problema de programação específico.
Cada uma das três formas de coleção fornecidas é descrita brevemente mais adiante neste tópico. Para comparar os recursos das formas para ajudá-lo a decidir qual é o melhor para o seu programa, consulte Recomendações para escolher uma classe de coleção.
Lista
A classe list fornece uma lista ordenada e não indexada de elementos, implementada como uma lista duplamente vinculada. Uma lista tem uma "cabeça" e uma "cauda", e adicionar ou remover elementos da cabeça ou cauda, ou inserir ou excluir elementos no meio, é muito rápido.
Matriz
A classe array fornece uma matriz de objetos dinamicamente dimensionada, ordenada e indexada por inteiros.
Mapa (também conhecido como dicionário)
Um mapa é uma coleção que associa um objeto chave a um objeto value.
As classes da coleção Template-Based
A maneira mais fácil de implementar uma coleção de tipo seguro que contém objetos de qualquer tipo é usar uma das classes baseadas em modelo MFC. Para obter exemplos dessas classes, consulte o exemplo MFC COLLECT.
A tabela a seguir lista as classes de coleção baseadas em modelo MFC.
Classes de modelo de coleção
| Conteúdo da coleção | Matrizes | Listas | Mapas |
|---|---|---|---|
| Coleções de objetos de qualquer tipo | CArray |
CList |
CMap |
| Coleções de ponteiros para objetos de qualquer tipo | CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
As classes de coleção não baseadas em modelos
Se seu aplicativo já usa classes MFC não modelo, você pode continuar a usá-los. No entanto, para novas coleções, recomendamos que utilize as classes baseadas em modelo. A tabela a seguir lista as classes de coleção MFC que não são baseadas em modelos.
Classes de coleção sem modelo
| Matrizes | Listas | Mapas |
|---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
CMapStringToPtr |
|
CStringArray |
CMapStringToString |
|
CWordArray |
CMapWordToOb |
|
CUIntArray |
CMapWordToPtr |
A tabela Características das classes de coleção MFC em Recomendações para escolher uma classe de coleção descreve as classes de coleção MFC em termos dessas características (diferentes da forma):
Se a classe usa modelos C++
Se os elementos armazenados na coleção podem ser serializados
Se os elementos armazenados na coleção podem ser despejados para diagnóstico
Se a coleção é segura para tipos