Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Biblioteca de Classes do Microsoft Foundation fornece classes de coleção para gerenciar grupos de objetos. Essas classes são de dois tipos:
Observação
Se o código já usa classes de coleção não destemperadas, você pode continuar a usá-las. Se você escrever novas classes de coleção type-safe para seus próprios tipos de dados, recomendamos que você use as classes baseadas em modelo 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 à maneira como os objetos são organizados e armazenados pela coleção. 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 para seu problema de programação específico.
Cada uma das três formas de coleção fornecidas é descrita brevemente mais tarde neste tópico. Para comparar os recursos das formas para ajudá-lo a decidir qual é o melhor para seu programa, consulte Recomendações para Escolher uma Classe de Coleção.
Lista
A classe de lista fornece uma lista ordenada e não limitada 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 de matriz fornece uma matriz de objetos indexada por inteiro, ordenada e dimensionada dinamicamente.
Mapa (também conhecido como dicionário)
Um mapa é uma coleção que associa um objeto de chave a um objeto de valor.
As classes de 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 de 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 não destemperadas do MFC, você pode continuar a usá-las. No entanto, para novas coleções, recomendamos que você use 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 não destemperadas
| 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 (além 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 é de tipo seguro