Compartilhar via


Classes de matriz, lista e mapa

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 dessas classes ou 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.

As matrizes são estruturas de dados unidimensionais armazenadas contíguamente na memória. Eles dão suporte a acesso aleatório muito rápido, pois o endereço de memória de qualquer elemento determinado pode ser calculado multiplicando o índice do elemento pelo tamanho de um elemento e adicionando o resultado ao endereço base da matriz. Mas as matrizes serão muito caras se você precisar inserir elementos na matriz, já que toda a matriz passada ao elemento inserido deve ser movida para abrir espaço para que o elemento seja inserido. As matrizes podem crescer e reduzir 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 próximos, tornando-o uma lista duplamente vinculada. É muito rápido adicionar ou excluir itens porque isso envolve apenas a alteração de alguns ponteiros. No entanto, pesquisar uma lista pode ser caro, pois todas as pesquisas precisam começar em um dos fins 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 de um ponteiro para uma lista. Você pediria ao mapa para fornecer o ponteiro associado a uma cadeia de caracteres específica. As pesquisas de mapa são rápidas porque os mapas usam tabelas de hash para pesquisas de chave. Adicionar e excluir itens também é rápido. Mapas geralmente são usados com outras estruturas de dados como índices auxiliares. O MFC usa um tipo especial de mapa chamado mapa de mensagens para mapear mensagens do Windows para um ponteiro para a função de manipulador dessa mensagem.

Consulte também

Visão geral da aula