Coleções
A biblioteca Microsoft Foundation Class 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 baseadas em modelos, você pode continuar a usá-las. Se você escrever novas classes de coleção fortemente tipadas para seus tipos de dados, recomendamos que use as classes mais recentes baseadas em modelos.
Formas de coleção
Uma classe de coleção é caracterizada por sua "forma" e pelos tipos de seus elementos. Forma refere-se à maneira como os objetos são organizados e armazenados pela coleção. O MFC fornece três formas de coleção básicas: 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.
As três formas de coleção fornecidas são descritas resumidamente mais adiante neste tópico. Para comparar os recursos das formas e ajudar você a decidir qual é a 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 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 da cauda, ou inserir ou excluir elementos no meio, é muito rápido.
Array
A classe de matriz fornece uma matriz de objetos com dimensionamento dinâmico, ordenada e indexada por inteiros.
Mapa (também conhecido como dicionário)
Um mapa é uma coleção que associa um objeto de chave a um objeto de valor.
Classes de coleção baseadas em modelos
A maneira mais fácil de implementar uma coleção fortemente tipada que contenha objetos de qualquer tipo é usar uma das classes baseadas em modelos do MFC. Para obter exemplos dessas classes, consulte a amostra COLLECT do MFC.
A tabela a seguir lista as classes de coleção baseadas em modelos do MFC.
Classes de coleção baseadas em modelos
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 |
Classes de coleção não baseadas em modelos
Se o aplicativo já usa classes não baseadas em modelos do MFC, você pode continuar a usá-las. No entanto, para novas coleções, recomendamos que use as classes baseadas em modelos. A tabela a seguir lista as classes de coleção do MFC que não são baseadas em modelos.
Classes de coleção não baseadas em modelos
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 do MFC em Recomendações para escolher uma classe de coleção descrevem as classes de coleção do MFC com relação a essas 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 é fortemente tipada
O que você deseja fazer
Tarefas das classes de coleção gerais
Tarefas das classes de coleção baseada em modelos
Acessando os membros de uma coleção (baseada em modelos ou não)
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de