Recomendado, 2024

Escolha Do Editor

Diferença entre matriz unidimensional (1D) e bidimensional (2D)

Uma matriz é uma coleção de variáveis ​​que são de tipos de dados semelhantes e são referenciadas por um nome comum. Um elemento específico em uma matriz é acessado por um índice específico dessa matriz. Matrizes em Java funcionam de maneira diferente em comparação com o C ++. O principal tópico de nossa discussão é a diferença entre as matrizes unidimensionais e bidimensionais. Uma matriz unidimensional é uma lista de variáveis ​​com o mesmo tipo de dados, enquanto a matriz bidimensional é uma "matriz de matrizes" com tipos de dados semelhantes. C ++ não tem verificação vinculada em arrays, enquanto Java tem verificação de limite restrito em arrays.

Então, vamos começar com as diferenças entre as matrizes de uma dimensão e de duas dimensões, juntamente com um gráfico de comparação.

Gráfico de comparação:

Base para ComparaçãoUnidimensionalBidimensional
Basic
Armazene uma lista única de elementos de tipo de dados semelhante.Armazenar 'lista de listas' ou 'matriz de matrizes' ou 'matriz de matrizes unidimensionais'.
Declaração/ * declaração em C ++
tipo variable_name [size]; * /
/ * declaração em Java
tipo variable_name [];
nome_variável = novo tipo [tamanho]; * /
/ * declaração em C ++
tipo nome_da_variável [tamanho1] [tamanho2]; * /
/ * declaração em Java
tipo variable_name = new int [tamanho1] [tamanho2]; * /
Declaração Alternativa/ * Em Java
int [] a = novo int [10]; * /
/ * Em Java
int [] [] a = novo int [10] [20]; * /
Tamanho total em bytesTotal Bytes = sizeof (tipo de dados da variável array) * tamanho da matriz.Total Bytes = sizeof (tipo de dados da variável array) * tamanho do primeiro índice * tamanho do segundo índice.
Parâmetro de recebimentoEle pode ser recebido em uma matriz de tamanho de ponteiro, ou em uma matriz não dimensionada.O parâmetro que o recebe deve definir a dimensão mais à direita de um array.
DimensõesUnidimensional.Duas dimensões.

Definição de matriz unidimensional (matriz 1-D)

Uma matriz unidimensional ou unidimensional é considerada a “lista de variáveis ​​de tipos de dados semelhantes”, e cada variável pode ser acessada distintamente especificando seu índice entre colchetes precedido pelo nome dessa matriz.

Em C ++, a declaração de uma variável array com tamanho é suficiente para alocar espaço para eles na memória. Em Java, isso é alcançado em duas etapas. Primeiro, você deve declarar uma variável do tipo desejado. Segundo, você deve alocar a memória para manter a matriz usando 'novo' e atribuí-la à variável de matriz declarada. Portanto, as matrizes são alocadas dinamicamente em Java.

Vamos discutir em contexto C ++

 // declaração em tipo C ++ nome_variável [tamanho]; 

Aqui o tipo declara o tipo de dados da variável array, e o tamanho define o número de elemento que o array manterá.

Por exemplo, se quisermos declarar uma matriz que conterá o saldo de cada mês do ano.

 // example int month_balance [12]; 

O _balance do mês é a variável do array que conterá os 12 inteiros, que representarão o saldo de cada mês. Agora, se quisermos acessar o saldo do mês 'Abril', simplesmente tivemos que mencionar o nome da variável seguido pelo colchete contendo o valor do índice para o mês de abril, ou seja, 'saldo_do_mês [3]'. Mas como 'abril' é o quarto mês do ano, mas nós mencionamos '[3]' porque todos os arrays têm 0 como o índice do primeiro elemento.

Em Java, isso pode ser feito

 // declaração no tipo Java nome_variável []; nome_variável = novo tipo [tamanho]; 

Aqui, inicialmente, tínhamos declarado uma variável array com seu tipo e, em seguida, alocamos memória a ela usando 'new' e atribuímos 'new' à variável array declarada. Vamos dar o exemplo acima se quisermos declarar um array que conterá o saldo em cada mês do ano.

 // example int month_balance []; month_balance = new int [12]; 

Aqui, 'new' aloca a memória para a variável array “month_balance”, então, agora, mont_balance agora armazenará a memória para 12 valores inteiros.

Arrays podem ser inicializados quando são declarados. Um inicializador de matriz é a lista de valores separados por vírgula entre as chaves.
//exemplo

 int mn_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450, 180}; 

Definição de Matriz Bidimensional (Matriz 2-D)

Tanto o C ++ quanto o Java suportam o array multidimensional. Uma das formas mais simples de um array multidimensional é um array bidimensional ou um array bidimensional. Um array bidimensional pode ser considerado como 'array de arrays' ou 'array de arrays unidimensionais'. Para declarar a variável matriz bidimensional, temos que especificar o nome da matriz seguido por dois colchetes, onde o segundo índice é o segundo conjunto de colchetes.

Uma matriz bidimensional é armazenada na forma da matriz da coluna da linha, onde o primeiro índice indica a linha e o segundo índice indica a coluna. O segundo ou o índice mais à direita de um array muda muito rapidamente quando comparado ao primeiro índice ou ao índice mais à esquerda enquanto acessa os elementos de um array.

Em C ++, o array bidimensional é declarado como;

 // declaração em tipo C ++ nome_da_variável [tamanho1] [tamanho2]; 

Por exemplo, queremos armazenar o saldo de cada 30 dias em cada mês do ano, em uma matriz 2-D.

 // example int month_balance [12] [30]; 

Em Java, o array bidimensional é obtido por

 // declaração no tipo Java variable_name = new int [size1] [size2]; // example int month_balance = new int [12] [30]; 

Como não podemos passar a matriz inteira como um parâmetro para uma função, um ponteiro para o primeiro elemento da matriz é passado. Um argumento que recebe a matriz bidimensional deve definir a dimensão mais à direita. A dimensão mais à direita é necessária porque o compilador precisa dela, para confirmar o comprimento de cada linha se quiser indexar a matriz corretamente. Se o índice mais à direita não for mencionado, o compilador não poderá determinar onde a próxima linha será iniciada.

 // exemplo em Java void receiveing_funct (int a [] [10]) {. . . } 

Quando a memória está sendo alocada dinamicamente para o array bidimensional em Java, o índice mais à esquerda é especificado e as dimensões restantes podem ser alocadas separadamente, ou seja, todas as linhas do array podem não ser do mesmo tamanho.

 // exemplo em Java int month_balance = new int [12] []; month_balance [0] = novo int [31]; month_balance [1] = novo int [28]; saldo_do_mês [2] = novo int [31]; month_balance [3] = novo int [30]; month_balance [4] = novo int [31]; month_balance [5] = novo int [30]; month_balance [6] = novo int [31]; month_balance [7] = novo int [30]; month_balance [8] = novo int [31]; month_balance [9] = novo int [30]; saldo_do_mês [10] = novo int [31]; saldo_do_mês [11] = new int [30]; month_balance [12] = novo int [31]; 

Mas não há vantagem em fazê-lo.

Principais diferenças entre matriz unidimensional e bidimensional

  1. A matriz unidimensional é uma lista cujos elementos são de tipo de dados semelhante. Por outro lado, a matriz bidimensional é uma lista cujos elementos são a matriz de tipo de dados semelhante.
  2. Em C ++, quando a matriz unidimensional é recebida pelo parâmetro de uma função receptora, não é necessário mencionar o tamanho da matriz, pois o compilador entende que a matriz do tipo (tipo de dados mencionado junto com o parâmetro) com algum comprimento é para ser recebido. Em uma matriz bidimensional, o segundo índice, ou o índice mais à direita, deve ser especificado, já que o compilador precisa saber onde um único fim de linha e uma nova linha são iniciados.
  3. Em C ++, a matriz unidimensional é armazenada em uma localização de memória contígua na ordem indexada, enquanto a matriz bidimensional também é armazenada na localização de memória contígua, mas como há várias linhas em uma matriz bidimensional, o armazenamento de uma primeira linha é seguida por uma segunda e a terceira e assim por diante.

Nota:

A passagem de ambos, matriz unidimensional e matriz bidimensional para uma função é semelhante, isto é, ambas são passadas apenas pelo nome da matriz.

 // exemplo passing_funt (name_of_array); 

Conclusão:

No array unidimensional e bidimensional, o índice desempenha um papel muito importante, pois é a única coisa que identifica especificamente um elemento no array. O array unidimensional e bidimensional pode ser inicializado no momento de sua declaração.

Top