Coleções
A biblioteca Microsoft Foundation Class fornece classes de coleção para gerenciar grupos de objetos.Essas classes são de dois tipos:
Classes de coleção criadas a partir de modelos C++
Classes de coleção não criadas com modelos
Observação |
---|
Se seu código já usa classes de coleção nontemplate, você pode continuar a usá-los.Se você gravar novas classes de coleção de tipo seguro para seus próprios tipos de dados, recomendamos que você use as classes com base no modelo mais recentes. |
Coleção de formas
Uma classe de coleção é caracterizada por sua "forma" e os tipos de seus elementos.A forma se refere à maneira como os objetos são organizados e armazenados pela coleção.MFC fornece três formas básicas de coleção: listas, arrays e mapas (também conhecido 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 fornecida é descrita resumidamente posteriormente neste tópico.Para comparar os recursos de formas para ajudá-lo a decidir qual é melhor para seu programa, consulte Recomendações para escolher uma classe de coleção.
List
A classe de lista fornece uma lista ordenada não indexada de elementos, implementado como uma lista duplamente vinculada.Uma lista tem "head" e "cauda" e adicionando ou removendo elementos da cabeça ou cauda, ou inserindo ou excluindo elementos no meio, é muito rápida.
Matriz
A classe array fornece uma matriz dinamicamente tamanho, ordenada e indexados inteiro de objetos.
Mapa (também conhecido como um dicionário)
Um mapa é uma coleção que associa um objeto de chave com um objeto de valor.
As Classes de coleção com base em modelo
A maneira mais fácil de implementar uma coleção de tipo seguro que contém objetos de qualquer tipo é usar uma das classes MFC baseado em modelo.Para obter exemplos dessas classes, consulte exemplo de MFC COLETAR.
A tabela a seguir lista as classes de coleção com base no modelo do MFC.
Coleção Classes de modelo
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 do MFC nontemplate, você pode continuar a usá-los.No entanto, para novas coleções, recomendamos que você use as classes de modelo.A tabela a seguir lista as classes de coleção do MFC não são baseadas em modelos.
Classes de coleção nontemplate
Matrizes |
Listas |
Mapas |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
As características do MFC coleção Classes de tabela Recomendações para escolher uma classe de coleção descreve as classes de coleção do MFC em termos de características (diferente de forma):
Se a classe usa modelos C++
Se os elementos armazenados na coleção podem ser serializados
Os elementos armazenados na coleção podem ser despejados para diagnóstico
Se a coleção é tipo seguro