Partilhar via


Coleções

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

O que queres fazer

Tarefas gerais Collection-Class

Template-Based Collection-Class Tarefas

Acesso aos membros de uma coleção (Template-Based ou não)

Ver também

Conceitos
Tópicos gerais do MFC