Compartilhar via


Coleções

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

O que você quer fazer

Tarefas gerais de Collection-Class

Tarefas do Template-Based Collection-Class

Acessando os membros de uma coleção (Template-Based ou não)

Consulte também

Conceitos
Tópicos gerais do MFC