Vídeo: Estruturas de Dados - Matriz dinâmica 2024
As matrizes estáticas são alocadas na pilha, o que podem limitar sua usabilidade. Arrays dinâmicos são alocados no heap, o que significa que eles são limitados apenas pelo tamanho da memória. É certo que você encontrará algumas outras diferenças entre os arrays dinâmicos e estáticos, mas a linha inferior aqui é que, embora as matrizes dinâmicas exigem um pouco mais de trabalho a ser usado, porque você deve gerenciar a própria memória, eles também oferecem maior flexibilidade ao trabalhar com dados.
Mais do que provável, você precisará manipular dados complexos ao usar arrays dinâmicos. O exemplo neste artigo on-line pretende agradar, observando como você pode usar uma matriz dinâmica com uma estrutura. Aqui está um exemplo do código que você pode usar:
#include #include usando namespace std; struct Employee {string Name; int Age;}; int main () {Employee * DynArray; DynArray = new (nothrow) Employee [3]; DynArray [0]. Nome = "Harvey"; DynArray [0]. Idade = 33; DynArray [1]. Nome = "Sally"; DynArray [1]. Idade = 26; DynArray [2]. Nome = "Jeff"; DynArray [2]. Idade = 52; cout << "exibindo o conteúdo da matriz" << endl; para (int i = 0; i <3; i ++) {cout << "nome:" << dynArray [i]. Nome << "tAge:" << dynArray [i]. Idade << endl;} delete [] DynArray; return 0;}
Neste exemplo, o código começa criando uma estrutura do empregado que contém o nome do empregado e a idade. Você poderia usar qualquer tipo de recipiente de dados desejado - esse simplesmente acontece de ser uma estrutura.
Para criar uma matriz dinâmica, você define um ponteiro para a variável da matriz. Este ato coloca a variável na pilha, em vez da pilha. Em seguida, você cria a matriz, que contém três entradas de funcionários neste caso. O código preenche os dados e, em seguida, usa um loop para exibir os resultados na tela. Aqui está o que você deve ver quando você executa o exemplo.
Exibindo o conteúdo da matriz Nome: Harvey Idade: 33 Nome: Sally Idade: 26 Nome: Jeff Idade: 52
Observe que você acessa os membros individuais do Empregado acessando o índice de matriz necessário e usando a sintaxe de ponto para especificar o nome do membro. É importante lembrar que a matriz dinâmica age como qualquer outra matriz na medida em que você acessa um índice para obter uma entrada específica.
É essencial usar delete [] para liberar a memória usada pelo DynArray. Caso contrário, seu aplicativo terá um vazamento de memória que eventualmente afetará o desempenho do sistema ou, pelo menos, fará coisas engraçadas. Porque nossos sistemas já são graciosos, o que é suficiente, provavelmente é uma boa idéia garantir que seu aplicativo não contribua para o problema.