Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Matrizes em C++ | Declare | Inicializar | Ponteiro para exemplos de matriz

O que é uma matriz?


Um array é uma estrutura de dados que armazena um elemento do mesmo tipo de dados sequencialmente. Uma matriz C++ tem um tamanho fixo.

Você pode ver uma matriz como uma coleção de variáveis ​​de um tipo de dados semelhante. Em vez de declarar cada variável e atribuir um valor a ela individualmente, você pode declarar uma variável (o array) e adicionar os valores das várias variáveis ​​a ela. Cada valor agregado ao array é identificado por um índice.

Neste tutorial de C++, você aprenderá:

Por que precisamos de matrizes?


Arrays são muito importantes em qualquer linguagem de programação. Eles fornecem uma maneira mais conveniente de armazenar variáveis ​​ou uma coleção de dados de um tipo de dados semelhante juntos, em vez de armazená-los separadamente. Cada valor do array será acessado separadamente.

Declare um array em C++


A declaração de array em C++ envolve declarar o tipo, bem como o número de elementos a serem armazenados pelo array. Sintaxe:
type array-Name [ array-Size ];

Regras para declarar um array unidimensional em C++.


Por exemplo, você pode criar uma matriz chamada age e armazenar as idades de 5 alunos da seguinte forma:
int age[5];

O array age armazenará 5 inteiros representando as idades de diferentes alunos.

Inicialização da matriz


A inicialização do array é o processo de atribuir/armazenar elementos em um array. A inicialização pode ser feita em uma única instrução ou uma a uma. Observe que o primeiro elemento em um array é armazenado no índice 0, enquanto o último elemento é armazenado no índice n-1, onde n é o número total de elementos no array.

No caso do array age, o primeiro elemento será armazenado no índice 0, enquanto o último elemento será armazenado no índice 4.

Vamos usar o array age para demonstrar como a inicialização do array pode ser feita:
int age[5] = {19, 18, 21, 20, 17};

O número total de elementos dentro do {} não pode exceder o valor indicado no [ ]. O elemento 19 está no índice 0, 18 no índice 1, 21 no índice 2, 20 no índice 3 e 17 no índice 4. Se você não indicar o número de elementos a serem armazenados no array dentro de [ ], o array só será grande o suficiente para conter os elementos adicionados em {}. Por exemplo:
int age[] = {19, 18, 21, 20, 17};

A instrução acima criará exatamente a mesma matriz que a anterior. Você também pode atribuir um elemento a uma matriz usando seu índice. Por exemplo:
age[3] = 20;

A instrução acima armazenará o valor 20 no índice 3 do array chamado age. Isso significa que 20 será o 4 th elemento da matriz.

Tipos de matrizes


Existem dois tipos de matrizes C++:

Matriz Unidimensional


Esta é uma matriz na qual os itens de dados são organizados linearmente em apenas uma dimensão. É comumente chamado de matriz 1-D. Sintaxe:
datatype array-name[size];

Por exemplo:
#include <iostream>
using namespace std;

int main()
{
	int age[5] = { 19, 18, 21, 20, 17 };
	for (int x = 0; x < 5; x++)
	{
		cout <<age[x]<<"\n";
	}
}

Saída:



Aqui está uma captura de tela do código:



Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e gravar no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual a lógica do programa deve ser adicionada.
  4. Início do corpo da função main().
  5. Declarando um array chamado age para armazenar 5 inteiros. Os 5 inteiros também foram inicializados.
  6. Crie uma variável inteira x usando um loop for.
  7. O início do corpo do loop for.
  8. Usando a variável de loop x para iterar sobre os valores do array age e imprimi-los no console. O “\n” é um caractere de nova linha e imprime em uma nova linha após cada iteração.
  9. Fim do corpo do for a loop.
  10. Fim do corpo da função main().

Matriz multidimensional


Esta é uma matriz na qual os itens de dados são organizados para formar uma matriz de matrizes. Um array multidimensional pode ter qualquer número de dimensões, mas arrays bidimensionais e tridimensionais são comuns. Sintaxe:
datatype array-name[d1][d2][d3]...[dn];

O array-name é o nome do array que terá n dimensões. Por exemplo:

Matriz bidimensional


Um array 2D armazena dados em uma lista com array 1-D. É uma matriz com linhas e colunas. Para declarar uma matriz 2D, use a seguinte sintaxe:
type array-Name [ x ][ y ];

O tipo deve ser um tipo de dados C++ válido. Veja uma matriz 2D como uma tabela, onde x denota o número de linhas enquanto y denota o número de colunas. Isso significa que você identifica cada elemento em uma matriz 2D usando a forma a[x][y], onde x é o número de linhas ey o número de colunas nas quais o elemento pertence.

Aqui está um exemplo de como inicializar um array 2D:
int a[2][3] = {  
   {0, 2, 1} ,   /*  row at index 0 */
   {4, 3, 7} ,   /*  row at index 1 */
   };

No exemplo acima, temos uma matriz 2D que pode ser vista como uma matriz 2×3. São 2 linhas e 3 colunas. O elemento 0 pode ser acessado como a[0][1] porque está localizado na interseção da linha indexada 0 e coluna indexada 1. O elemento 3 pode ser acessado como a[1][2] porque está localizado no interseção da linha indexada 1 e da coluna indexada 2.

Observe que simplesmente adicionamos chaves para diferenciar as diferentes linhas de elementos. A inicialização também poderia ter sido feita da seguinte forma:
int a[2][3] = {0, 2, 1, 4, 3, 7};
   };

O exemplo C++ a seguir demonstra como inicializar e percorrer uma matriz 2D:
#include <iostream>
using namespace std;
int main() 
{
	// a 2x3 array
	int a[3][2] = { {0, 2}, {1, 4}, {3, 7} };

	// traverse array elements

	for (int i=0; i<3; i++)
		for (int j=0; j<2; j++) 
		
		{
			cout << "a[" <<i<< "][" <<j<< "]: ";
			cout << a[i][j] << endl;
		}
	return 0;
}

Saída:



Aqui está uma captura de tela do código acima:



Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e gravar no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamar a função main() na qual o código deve ser adicionado.
  4. Início do corpo da função main().
  5. Um comentário. O compilador C++ ignorará isso.
  6. Declarando uma matriz 2D de 3 linhas e 2 colunas. Itens também foram adicionados ao array.
  7. Um comentário. O compilador C++ ignorará isso.
  8. Criando uma variável i usando um loop for. Esta variável irá iterar sobre os índices de linha da matriz.
  9. Criando uma variável j usando um laço for. Esta variável irá iterar sobre os índices de coluna da matriz.
  10. Início do corpo dos loops.
  11. Imprima os valores das variáveis ​​i e j no console entre colchetes no console.
  12. Imprima o valor armazenado no índice [i][j] do array a.
  13. Fim do corpo dos loops.
  14. A função main() deve retornar um valor inteiro se o programa funcionar bem.
  15. Fim do corpo da função main().

Três – Matriz Dimensional


Uma matriz 3D é uma matriz de matrizes. Cada elemento em uma matriz 3D é identificado por um conjunto de 3 índices. Para acessar os elementos de um array 3D, usamos três loops for. Por exemplo:
#include<iostream>
using namespace std;
void main()
{
	int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}};
	cout << "a[0][1][0] = " << a[0][1][0] << "\n";
	cout << "a[0][1][1] = " << a[0][1][1] << "\n";
}

Saída:



Aqui está uma captura de tela do código:



Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e gravar no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual a lógica do programa deve ser adicionada.
  4. Início do corpo da função main().
  5. Declarar um array 3D chamado an de tamanho 2x3x2. Os valores da matriz também foram inicializados.
  6. Acessando o item armazenado no índice [0][1][0] do array e imprimindo-o no console.
  7. Acessando o item armazenado no índice [0][1][1] do array e imprimindo-o no console.
  8. Fim do corpo da função main().

Ponteiro para uma matriz


Um ponteiro é uma variável que contém um endereço. Além de usar um ponteiro para armazenar o endereço de uma variável, podemos usá-lo para armazenar o endereço de uma célula do array. O nome de um array aponta constantemente para seu primeiro elemento. Considere a declaração abaixo:
int age[5];

A idade é um ponteiro para $age[0], o endereço do primeiro elemento de um array chamado age. Considere o seguinte exemplo:
#include <iostream>
using namespace std;
int main()
{
	int *john;

	int age[5] = { 19, 18, 21, 20, 17 };

	john = age;

	cout << john << "\n";

	cout << *john;
	
}

Saída:



Observe que o primeiro valor da saída acima pode retornar um valor diferente dependendo do endereço atribuído ao primeiro elemento da matriz na memória do seu computador.

Aqui está uma captura de tela do código:



Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e gravar no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual a lógica do programa deve ser adicionada.
  4. Início do corpo da função main().
  5. Declarando uma variável de ponteiro chamada *john.
  6. Declarar um array de inteiros chamado age para armazenar 5 inteiros. Os valores dos inteiros também foram inicializados.
  7. Atribuindo à variável john o valor do endereço do item armazenado no primeiro índice do array age.
  8. Imprimindo o valor da variável john, que é o endereço do item armazenado no primeiro índice do array age.
  9. Imprimindo o primeiro valor armazenado no array age.
  10. Fim do corpo da função main().

Os nomes de matrizes podem ser usados ​​como ponteiros constantes e vice-versa também é verdadeiro. Isso significa que você pode acessar o valor armazenado no índice 3 do array age com *(age + 3). Por exemplo:
#include <iostream>
using namespace std;

int main() {
	// an array of 5 elements.
	int age[5] = { 19, 18, 21, 20, 17 };
	int *p;

	p = age;

	// output array values

	cout << "Using pointer: " << endl;

	for (int x=0; x<5; x++) {
		cout << "*(p + " << x << ") : ";
		cout << *(p + x) << endl;
	}
	cout << "Using age as address: " << endl;

	for (int x = 0; x < 5; x++) {
		cout << "*(age + " << x << ") : ";
		cout << *(age + x) << endl;
	}

	return 0;
}

Saída:



Aqui está uma captura de tela do código:



Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e gravar no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamada da função main() e início do corpo da função main().
  4. Um comentário. O compilador C++ ignorará isso.
  5. Declarando um array chamado age para armazenar 5 inteiros.
  6. Criando um ponteiro inteiro p.
  7. Atribuindo p o valor do endereço do primeiro elemento do array age.
  8. Um comentário. O compilador C++ ignorará isso.
  9. Imprima algum texto no console.
  10. Crie um inteiro x usando a para um loop. O { marca o início do corpo do for um loop.
  11. Imprima os valores de x combinados com algum outro texto no console.
  12. Imprima os valores de *(p + x) no console.
  13. Fim do corpo do for um loop.
  14. Imprima algum texto no console.
  15. Crie uma variável x usando um loop for. O { marca o início do corpo do loop for.
  16. Imprima os valores de x de 0 a 4 junto com algum outro texto.
  17. Imprima os valores de *(idade + x).
  18. Fim do corpo do loop for.
  19. Retorne o valor se o programa for executado com sucesso.
  20. Fim do corpo da função main().

Acessando os valores de um Array


Os elementos de um array são acessados ​​usando seus respectivos índices. O índice do elemento a ser acessado é adicionado entre colchetes [ ] imediatamente após o nome do array. Por exemplo:
int john = age[2];

No exemplo acima, estamos simplesmente afirmando que a idade de john é armazenada no índice 2 do array chamado age. Isso significa que a idade de João é o 3 rd valor na idade da matriz. Aqui está um exemplo C++ completo que mostra como acessar e imprimir este valor:
#include<iostream>

using namespace std;

int main()
{

	int age[5] = { 19, 18, 21, 20, 17 };

	int john = age[2];

	cout << "The age of John is:"<<john;
}

Resultado:



Aqui está uma captura de tela do código:



Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e gravar no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamar a função main() na qual o código deve ser adicionado.
  4. Início de um corpo da função main().
  5. Declarando um array chamado age para armazenar 5 elementos inteiros.
  6. Acessando o valor armazenado no índice 2 do array age e armazenando seu valor em uma variável chamada john.
  7. Imprimir o valor da variável john no console junto com outro texto.

Vantagens de um Array em C++


Aqui estão os prós/benefícios de usar Array em C++:

Desvantagens de um Array em C++

Resumo


Linguagem C

  1. Matrizes C#
  2. Passando array para uma função na programação C++
  3. Copiar Matrizes Java
  4. C++ do… while loop com exemplos
  5. Alocação dinâmica de matrizes em C++ com exemplo
  6. Ponteiros C++ com exemplos
  7. Tipo de dados C++ Char com exemplos
  8. Sobrecarga do operador C++ com exemplos
  9. Funções C++ com exemplos de programas
  10. Tutorial de coleções de C# com exemplos