Matriz, lista e Classes do mapa

Para manipular agregações de dados, a biblioteca de classes fornece um grupo de classes de coleção — matrizes, listas e "mapas" — que pode conter uma variedade de tipos predefinidos e objeto. As coleções são dimensionadas dinamicamente. Essas classes podem ser usadas em qualquer programa, se escritos para o Windows ou não. No entanto, eles são mais úteis para a execução das estruturas de dados que definem suas classes de documento no âmbito de aplicação. Facilmente você pode derivar classes de coleção especializados destes, ou você pode criá-los com base nas classes de modelo. Para obter mais informações sobre essas abordagens, consulte o artigo coleções no Guia do programador do Visual C++ e Classes de modelo para matrizes, listas e mapas nesta visão geral para obter uma lista das classes de coleção de modelo.

Matrizes são estruturas de dados unidimensional que são armazenadas de forma contígua na memória. Eles suportam acesso aleatório muito rápido desde 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 para o endereço base da matriz. Mas os arrays são muito caros se tiver ao inserir elementos em array, desde todo o array passado o elemento inserido tem de ser movido para fazer o quarto para o elemento a ser inserido. Matrizes podem aumentar e diminuir conforme necessário.

Listas são semelhantes às matrizes, mas são armazenadas de forma muito diferente. Cada elemento de uma lista também inclui um ponteiro para os elementos anteriores e seguintes, tornando-se uma lista duplamente vinculada. É muito rápido para adicionar ou excluir itens porque isso envolve apenas alterando alguns ponteiros. No entanto, pesquisar uma lista pode ser caro pois todas as pesquisas precisam começar em uma das extremidades da lista.

Mapas dizem respeito a um valor de chave para 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ê pedir mapa para dar-lhe o ponteiro associado a uma Cadeia de caracteres específica. Pesquisas de mapa são rápidas porque mapas usam tabelas de hash para pesquisas de chave. Adicionando e excluindo itens também são rápido. Mapas são frequentemente usados com outras estruturas de dados como índices auxiliares. MFC usa um tipo especial de mapa chamado um " Mapa da mensagem" para mapear mensagens do Windows para um ponteiro para a função de manipulador para essa mensagem.

Index