Exclua a matriz 2D C ++

Exclua a matriz 2D C ++
Uma matriz bidimensional pode ser construída de duas maneiras distintas: com memória regular ou armazenamento gratuito. Se um programa estiver executando, ele tem acesso tanto à sua memória usual quanto à memória adicional. O código não é obrigado a usar o armazenamento gratuito, que é uma memória adicional. Na memória regular, o programa gerará uma matriz bidimensional padrão. Se o programa pretende construir a mesma matriz bidimensional no armazenamento gratuito, pode fazê-lo dinamicamente.

Em cada tipo de memória, o método para definir uma matriz bidimensional varia. Basta deixar uma matriz bidimensional normal sair do alcance para excluí-lo. Utilize o operador Excluir [] efetivamente para excluir uma matriz bidimensional gerada na biblioteca livre. Vamos discutir como excluir uma matriz bidimensional em C ++:

Exclua uma matriz simples bidimensional

Para uma matriz normal bidimensional para sair do alcance precisa excluir. Por um domínio aninhado, o programa indica isso:

#incluir
usando namespace std;
int main ()

if (1 == 1)
String arr2d [] [4] = "zz", "zy", "zx", "zw",
"Mm", "ml", "mk", "mj",
"Ii", "ih", "ig", "se",
"Pp", "po", "pn", "pm";
cout<< arr2D[1][1] <
retornar 0;

Primeiro, temos que apresentar o arquivo de cabeçalho . Declaramos uma matriz bidimensional e especificamos os elementos desta matriz. A declaração 'cout' é aplicada à primeira linha e primeira coluna. Então, temos o elemento presente na primeira linha e a primeira coluna. Fora isso, todos os elementos são excluídos. Terminamos o programa inserindo o comando 'return 0'.

'ML' é o resultado depois de executar o código acima. O contexto aninhado é uma seção no if-construir. No final da seção, a matriz não é mais válida. Houve uma indicação de observação abaixo da parte da função no código. O programa não compilaria se tivesse sido eliminado, e uma notificação de erro pode aparecer.

A matriz bidimensional padrão especificada no corpo da função termina após a chamada da função no código a seguir:

#incluir
usando namespace std;
void fn ()

String arr2d [] [4] = "zz", "zy", "zx", "zw",
"Pp", "po", "pn", "pm",
"Ii", "ih", "ig", "se",
"Mm", "ml", "mk", "mj";
cout<< arr2D[1][1] <
int main ()

fn ();
retornar 0;

No início do programa, incluímos o arquivo de cabeçalho . O espaço para nome padrão está sendo utilizado. Chamamos o void fn (). Aqui definimos os elementos da matriz bidimensional. Utilizamos a declaração 'cout' para obter o elemento necessário da matriz definida.

Depois de tudo isso, aplicamos a função principal (). Dentro do corpo desta função, declaramos fn (). No final, o comando 'retornar 0' está sendo usado.

No nível global, atribuir um valor a um componente bidimensional antes que a declaração não tenha sido permitida.

Exclua uma matriz de ponteiro de armazenamento livre bidimensional construído dinamicamente

No nível maior, a alocação antes da declaração não seria necessária. É útil ter uma definição de matriz bidimensional em um domínio aninhado na função primária C ++ para fins pedagógicos. A expressão “Excluir [] matriz bidimensional” está sendo usada para excluir uma matriz 2D que foi especificada no programa. Esta exclusão deve ocorrer dentro de seu domínio para aliviar a memória e reduzir o transbordamento da memória. Por um escopo aninhado, o programa subsequente exemplifica isso:

#incluir
usando namespace std;
int main ()

if (1 == 1)
String (*ptr2d) [5] = new String [5] [5] "ZZ", "ZY", "ZX", "ZW",
"Pp", "po", "pn", "pm",
"Ii", "ih", "ig", "se",
"Mm", "ml", "mk", "mj",
"Ea", "eb", "ec", "ed", "ee";
cout<< ptr2D[0][0] <excluir [] ptr2d;
cout<< ptr2D[0][0] <
retornar 0;

Depois de incluir a biblioteca, o espaço de nome padrão é usado. A função principal () agora é declarada. Se a condição for realizada. O ponteiro da matriz 2D é construído. Depois disso, definimos uma matriz bidimensional e fornecemos seus elementos. Em zero linhas e zero colunas, a declaração 'cout' é usada. A técnica delete [] está sendo aplicada. Usamos a declaração 'cout' mais uma vez depois de excluí -la. Saímos do programa executando o comando 'Return 0'.

Depois de excluir os elementos da matriz, o código reverte para nada.

Array de memória livre bidimensional ponteiro a ponteiro

Como uma matriz de ponteiro para apontar, uma matriz bidimensional poderia ser gerada. Nesta situação, cada uma das linhas deve ser eliminada primeiro, seguida pela matriz 1D restante. No C ++, a instância seguinte demonstra o seguinte:

#incluir
usando namespace std;
int main ()

String ** ptr2d = new String*[3];
ptr2d [0] = new String [5];
ptr2d [0] [0] = "zz"; ptr2d [0] [1] = "zy"; ptr2d [0] [2] = "zx"; ptr2d [0] [3] = "zw";
ptr2d [1] = nova string [5];
ptr2d [1] [0] = "mm"; ptr2d [1] [1] = "ml"; ptr2d [1] [2] = "mk"; ptr2d [1] [3] = "mj";
ptr2d [2] = nova string [5];
ptr2d [2] [0] = "ii"; ptr2d [2] [1] = "ih"; ptr2d [2] [2] = "ig"; ptr2d [2] [3] = "se";
cout<< ptr2D[2][2] <para (int i = 0; i< 3; ++i)
excluir [] ptr2d [i];

excluir [] ptr2d;
cout<< ptr2D[1][1] <retornar 0;

O arquivo de cabeçalho é importado no início do programa. O espaço para nome padrão foi usado. O ponteiro de cordas para o ponteiro é construído pela primeira vez dentro do corpo da função principal (). Os componentes da matriz bidimensional foram definidos. Os elementos são especificados por suas linhas e colunas. Para obter o item na segunda linha e a segunda coluna da matriz, usamos a declaração 'cout'.

Estamos empregando o loop 'para' para excluir primeiro as fileiras da matriz. A variável de loop é inicializada e, em seguida, uma condição é aplicada a ele. Por fim, aumentamos o valor da variável de loop. Empregamos o método delete [] para eliminar entidades adicionais. O comando 'return 0' é usado para encerrar o código.

Para eliminar a matriz bidimensional na biblioteca livre, primeiro, remova todas as linhas usando o método delete [] e depois exclua a matriz principal de ponteiro 1-D.

Conclusão

Neste artigo, descrevemos diferentes metodologias para excluir a matriz 2D em C++. Basta deixar uma matriz normal bidimensional sair do alcance para excluí-la. Se a matriz bidimensional estivesse em armazenamento gratuito, seria eliminado usando o operador excluir [] para liberar memória no domínio onde é especificado. Se a matriz bidimensional na biblioteca livre tiver sido construída usando a notação padrão, a exclusão será tão simples quanto “excluir [] ArrayName bidimensional.”

Se tivesse sido construído como um ponteiro a apontar, remova as linhas primeiro usando “exclua [] Arrayname bidimensional [i]” e depois exclua a matriz 1-dimensional existente usando “delete [] Arrayname bidimensional ”.