Matriz de matrizes em C ++

Matriz de matrizes em C ++
Uma matriz de matrizes, também conhecida como uma matriz bidimensional, é uma estrutura de dados em C ++ que permite armazenar várias matrizes de dados em um formato semelhante à grade. Ao contrário de uma matriz unidimensional, que armazena os dados em uma única linha, uma matriz bidimensional pode armazenar os dados em várias linhas e colunas. Cada elemento na matriz é uma matriz, com um número fixo de elementos que correspondem ao número de colunas na matriz.

Matrizes bidimensionais podem ser úteis para armazenar dados que possuem várias dimensões ou que sejam organizados em uma tabela ou grade. Por exemplo, você pode usar uma matriz bidimensional para armazenar as notas para um grupo de estudantes, com cada linha representando um aluno diferente e cada coluna representando uma tarefa ou exame diferente.

Declaração de matriz multidimensional em C++

Para declarar uma matriz de matrizes em C ++, você precisa usar a seguinte sintaxe:

Nesta sintaxe, o data_type refere -se ao tipo de dados que é armazenado na matriz. O array_name é o nome da matriz. Os num_rows são o número de linhas na matriz. E num_cols são o número de colunas na matriz.

Maneiras diferentes de declarar as matrizes multidimensionais em C++

Usamos uma matriz do tipo inteiro para que possamos entender facilmente o trabalho de matrizes em C ++ e como colocamos os dados em linhas e colunas de matrizes. O programa a seguir declara uma variedade de matrizes inteiras. Ele cria uma matriz 3 × 3 de grade de nomes, que é um tipo inteiro:

int grade [3] [3];

Como aprendemos na sintaxe anterior, 3 × 3 significa que existem 3 linhas e 3 colunas na matriz. Por exemplo: queremos atribuir o valor que é 25 ao elemento na segunda linha e terceira coluna da matriz de grade.

grade [1] [2] = 25;

Isso define o valor do elemento na segunda linha e a terceira coluna, que possui um índice baseado em zero de 1 e 2, respectivamente, para 25. Você também pode inicializar uma variedade de matrizes quando a declarar. Por exemplo, o código a seguir declara e inicializa uma grade 2 × 2 de caracteres:

Char Board [2] [2] = 'x', 'o',
'BOI';

Isso cria uma matriz 2 × 2 de nome "placa" que contém os caracteres com os valores "X", "O", "O" e "X". Para iterar sobre uma variedade de matrizes, utilizaremos os loops.

Exemplo 1: demonstrando uma matriz multidimensional do tipo inteiro

Aqui está o primeiro exemplo simples de matrizes multidimensionais em C++. Neste exemplo, primeiro incluímos os arquivos básicos de cabeçalho que são úteis para obter a entrada e imprimir a saída na janela do console do usuário. Em seguida, iniciamos a função principal () para que possamos demonstrar facilmente o funcionamento de matrizes multidimensionais.

Primeiro, inicializamos uma matriz do tipo int do nome "grade" que contém 3 linhas e 3 colunas. Em seguida, armazenamos alguns dados na grade. Para obter os dados da matriz de grade, usamos um loop for que funciona iterativamente para imprimir todos os dados da grade na tela de saída.

#incluir
#incluir
usando namespace std;
int main ()

int grid [3] [3] = 1, 4, 7,
2, 5, 8,
3, 6, 9;
para (int i = 0; i < 3; ++i)

for (int j = 0; j < 3; ++j)

cout << grid[i][j] << " ";

cout << endl;

Este código imprime a seguinte saída:

Exemplo 2: Demonstrando o arranjo de assentos de um cinema, embora matrizes multidimensionais em C++

Aqui está outro exemplo de uma matriz de matrizes em c++. Suponha que queremos armazenar o arranjo de assentos de um cinema onde cada assento pode estar vazio ou ocupado. Podemos usar uma matriz bidimensional para armazenar esses dados, com cada linha representando uma linha diferente de assentos e cada coluna representando um assento diferente nessa linha. Declaramos uma matriz bidimensional chamada “assento” com 5 linhas e 10 colunas.

Uma fileira separada de assentos é representada por cada linha e um assento diferente nessa linha é representado por cada coluna. Inicializamos a matriz com alguns dados de amostra em que 0 representa um assento vazio e 1 representa um assento ocupado. Para acessar um assento específico, podemos usar o índice de linha e coluna daquele assento.

Por exemplo, para verificar se o assento na terceira linha e a quinta coluna estão vazios, usamos a instrução if-else. Por exemplo: os assentos [2] representam a terceira linha da matriz que contém o arranjo de assentos para a terceira fila de assentos. O assento [2] [4] representa o quinto elemento da terceira linha, que é o assento na terceira linha e a quinta coluna.

Em seguida, utilizamos o circuito que itera repetidamente sobre os itens da matriz e realiza todas as operações necessárias em cada assento.

#incluir
#incluir
usando namespace std;
int main ()

int assentamento [5] [10] = 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 0, 0, 0, 0, 1, 1, 0,
1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 1, 1;
int SeatStatus = assento [2] [4];
if (SeatStatus == 0)
cout << "Seat is empty" << endl;
outro
cout << "Seat is occupied" << endl;

Int OccupySeats = 0;
para (int i = 0; i < 5; i++)
for (int j = 0; j < 10; j++)
if (assento [i] [j] == 1)
OccupiveSeats ++;



cout << "There are " << occupiedSeats << " occupied seats." << endl;

Nesta ilustração, o loop interno e o loop externo alteram alternadamente sobre cada linha na matriz. A declaração if (assento [i] [j] == 1) dentro do loop interno verifica se o assento atual está ocupado. Nesse caso, incrementa o balcão de assento ocupado. No final dos loops, o programa gera o número total de assentos ocupados. Aqui está a saída que é gerada compilando o programa anterior:

Conclusão

Aprendemos que uma matriz de matrizes é uma estrutura de dados que contém várias matrizes em uma única matriz, permitindo a representação de dados em uma estrutura semelhante à matriz. Também aprendemos a criar estruturas de dados mais complexas, como tabelas ou cubos de dados. Embora possam ser poderosos, trabalhar com matrizes também pode ser mais complexo e exigir uma boa compreensão da sintaxe e métodos. É por isso que implementamos vários exemplos para que possamos entender facilmente os conceitos.