Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para lidar com agregações de dados, a biblioteca de classes fornece um grupo de classes de coleção — matrizes, listas e mapas — que podem conter uma variedade de objetos e tipos predefinidos. As coleções são dimensionadas dinamicamente. Essas classes podem ser usadas em qualquer programa, seja escrito para Windows ou não. No entanto, eles são mais úteis para implementar as estruturas de dados que definem suas classes de documento na estrutura do aplicativo. Você pode facilmente derivar classes de coleção especializadas a partir delas, ou você pode criá-las com base nas classes de modelo. Para obter mais informações sobre essas abordagens, consulte o artigo Coleções. Para obter uma lista das classes de coleção de modelos, consulte o artigo Classes de modelo para matrizes, listas e mapas.
Matrizes são estruturas de dados unidimensionais que são armazenadas contíguamente na memória. Eles suportam acesso aleatório muito rápido, uma vez que o endereço de memória de qualquer elemento pode ser calculado multiplicando o índice do elemento pelo tamanho de um elemento e adicionando o resultado ao endereço base da matriz. Mas matrizes são muito caras se você tiver que inserir elementos na matriz, uma vez que toda a matriz após o elemento inserido tem que ser movida para abrir espaço para o elemento a ser inserido. Os arrays podem crescer e encolher conforme necessário.
As listas são semelhantes às matrizes, mas são armazenadas de forma muito diferente. Cada elemento em uma lista também inclui um ponteiro para os elementos anteriores e seguintes, tornando-a uma lista duplamente vinculada. É muito rápido adicionar ou excluir itens porque isso envolve apenas alterar alguns ponteiros. No entanto, pesquisar uma lista pode ser caro, uma vez que todas as pesquisas precisam começar em um dos finais da lista.
Os mapas relacionam um valor de chave a um valor de dados. Por exemplo, a chave de um mapa pode ser uma cadeia de caracteres e os dados um ponteiro para uma lista. Você pediria ao mapa para lhe dar o ponteiro associado a uma cadeia de caracteres específica. As pesquisas de mapas são rápidas porque os mapas usam tabelas de hash para pesquisas de chaves. Adicionar e excluir itens também é rápido. Os mapas são frequentemente usados com outras estruturas de dados como índices auxiliares. MFC utiliza um tipo especial de mapa chamado mapa de mensagem para associar mensagens do Windows a um ponteiro da função manipuladora dessa mensagem.