Um conjunto nomeado de elementos do mesmo tipo é denominado array. Essa organização de dados tem muitas vantagens óbvias e uma desvantagem - ao criar um array, é necessário declarar seu tamanho com antecedência, que não pode ser alterado por meios convencionais no futuro. A solução para esse problema é desenvolver matrizes dinâmicas que podem alterar o número de seus elementos a qualquer momento. Além disso, para isso, você pode usar as duas classes já criadas e implementar as suas próprias usando ferramentas de linguagem de programação padrão.
Instruções
Passo 1
A principal essência de um array dinâmico é alocar memória para os dados armazenados nele exatamente no tamanho em que são necessários no momento. É mais conveniente implementar essa construção na forma de uma classe - um invólucro para um array. Aqui é necessário fornecer todas as funções que realizam a alocação e liberação de memória para um array, bem como os operadores que fornecem acesso aos seus elementos.
Passo 2
Crie um objeto da classe de wrapper de matriz dinâmica e o construtor alocará automaticamente a memória do tamanho especificado. Se, à medida que o array é preenchido, a memória para os elementos estiver completamente ocupada, ao adicionar os próximos dados, as seguintes ações são realizadas: - todas as informações do array são armazenadas em armazenamento temporário (array auxiliar); - a memória previamente alocada é liberado por um comando especial (liberar, excluir); - a memória é alocada sob a matriz do tamanho que é necessário para conter todos os dados - todos os valores "antigos" são colocados na nova matriz do armazenamento temporário e um novo elemento é adicionado.
etapa 3
A melhor maneira de trabalhar com matrizes dinâmicas é usar classes de biblioteca existentes. Um dos exemplos mais comuns é a classe vetorial. Inclui todas as funções e iteradores necessários para o funcionamento de um array mutável. Além disso, o módulo de biblioteca que contém essa classe é fornecido com qualquer versão do compilador C ++.
Passo 4
Inclua a biblioteca de matriz dinâmica usando o comando #include. Use a classe vetorial para criar um objeto. A movimentação pela matriz é a mesma que no caso usual, usando índices. Os recursos especiais aqui são as funções para adicionar e remover novos elementos, bem como uma série de métodos auxiliares. Um exemplo de código para criar e operar um vetor de matriz dinâmica: #include vector; vector int Massa; // declaração de um array dinâmico com elementos do tipo intMas.push_back (10); // adicionando o primeiro elemento - número 10 Mas.push_back (15); // adicionando o segundo elemento - número 15Mas [1] = 30; // o segundo elemento é escrito com o número 30Mas.pop_back (); // deletando o último elemento do array Aqui, ao criar um array dinâmico denominado Mass, o tipo de seus elementos (int) deve ser especificado, a dimensão não é especificada neste caso.