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 tipos de objeto e predefinidos. As coleções são dimensionadas dinamicamente. Essas classes podem ser usadas em qualquer programa, seja ele escrito para Windows ou não. No entanto, elas 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, confira o artigo Coleções. Para obter uma lista das classes de coleção de modelo, confira o artigo Classes de modelo para matrizes, listas e mapas.

Matrizes são estruturas de dados unidimensionais armazenadas contiguamente na memória. Elas dão suporte a acesso aleatório muito rápido, uma vez que o endereço de memória de qualquer determinado elemento pode ser calculado multiplicando o índice do elemento pelo tamanho de um elemento e adicionando o resultado ao endereço básico da matriz. Mas as matrizes serão muito caras se você precisar inserir elementos na matriz, uma vez que toda a matriz após o elemento inserido precisa ser movida para dar espaço para que o elemento seja inserido. Matrizes podem crescer e reduzir conforme necessário.

As listas são semelhantes às matrizes, mas são armazenadas de maneira 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 a alteração de alguns ponteiros. No entanto, pesquisar em uma lista pode ser caro, pois todas as pesquisas precisam começar em uma das extremidades 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 em uma lista. Você pediria ao mapa para fornecer a você 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 chaves. Adicionar e excluir itens também é rápido. Os 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.

Confira também

Visão geral da classe