Matrizes C++
Matrizes C++
Neste tutorial, aprenderemos a trabalhar com arrays. Aprenderemos a declarar, inicializar e acessar elementos de array na programação C++ com a ajuda de exemplos.
Em C++, um array é uma variável que pode armazenar vários valores do mesmo tipo. Por exemplo,
Suponha que uma turma tenha 27 alunos e precisemos armazenar as notas de todos eles. Em vez de criar 27 variáveis separadas, podemos simplesmente criar um array:
double grade[27];
Aqui, nota é um array que pode conter no máximo 27 elementos de
double
modelo. Em C++, o tamanho e o tipo dos arrays não podem ser alterados após sua declaração.
Declaração de matriz C++
dataType arrayName[arraySize];
Por exemplo,
int x[6];
Aqui,
int
- tipo de elemento a ser armazenado- x - nome da matriz
6
- tamanho da matriz
Acessar elementos na matriz C++
Em C++, cada elemento em uma matriz está associado a um número. O número é conhecido como índice de matriz. Podemos acessar elementos de um array usando esses índices.
// syntax to access array elements
array[index];
Considere a matriz x vimos acima.
Algumas coisas para lembrar:
- Os índices de matriz começam com
0
. Significado x[0] é o primeiro elemento armazenado no índice0
. - Se o tamanho de uma matriz for
n
, o último elemento é armazenado no índice(n-1)
. Neste exemplo, x[5] é o último elemento. - Os elementos de um array possuem endereços consecutivos. Por exemplo, suponha que o endereço inicial de
x[0]
é 2120d. Em seguida, o endereço do próximo elementox[1]
será 2124d, o endereço dex[2]
será 2128d e assim por diante.
Aqui, o tamanho de cada elemento é aumentado em 4. Isso ocorre porque o tamanho deint
é de 4 bytes.
Inicialização de matriz C++
Em C++, é possível inicializar um array durante a declaração. Por exemplo,
// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
Outro método para inicializar o array durante a declaração:
// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};
Aqui, não mencionamos o tamanho da matriz. Nesses casos, o compilador calcula automaticamente o tamanho.
Matriz C++ com membros vazios
Em C++, se um array tiver um tamanho
n
, podemos armazenar até n número de elementos no array. No entanto, o que acontecerá se armazenarmos menos de n número de elementos. Por exemplo,
// store only 3 elements in the array
int x[6] = {19, 10, 8};
Aqui, a matriz x tem um tamanho de
6
. No entanto, inicializamos com apenas 3 elementos. Nesses casos, o compilador atribui valores aleatórios aos locais restantes. Muitas vezes, esse valor aleatório é simplesmente
0
. Como inserir e imprimir elementos de matriz?
int mark[5] = {19, 10, 8, 17, 9}
// change 4th element to 9
mark[3] = 9;
// take input from the user
// store the value at third position
cin >> mark[2];
// take input from the user
// insert at ith position
cin >> mark[i-1];
// print first element of the array
cout << mark[0];
// print ith element of the array
cout >> mark[i-1];
Exemplo 1:Exibindo elementos de matriz
#include <iostream>
using namespace std;
int main() {
int numbers[5] = {7, 5, 6, 12, 35};
cout << "The numbers are: ";
// Printing array elements
// using range based for loop
for (const int &n : numbers) {
cout << n << " ";
}
cout << "\nThe numbers are: ";
// Printing array elements
// using traditional for loop
for (int i = 0; i < 5; ++i) {
cout << numbers[i] << " ";
}
return 0;
}
Saída
The numbers are: 7 5 6 12 35 The numbers are: 7 5 6 12 35
Aqui, usamos um
for
loop para iterar de i = 0
para i = 4
. Em cada iteração, imprimimos numbers[i]
. Usamos novamente um loop for baseado em intervalo para imprimir os elementos do array. Para saber mais sobre esse loop, consulte C++ Ranged for Loop.
Observação: Em nosso loop baseado em intervalo, usamos o código
const int &n
em vez de int n
como a declaração de intervalo. No entanto, o const int &n
é mais preferido porque:- Usando
int n
simplesmente copia os elementos do array para a variável n durante cada iteração. Isso não é eficiente em termos de memória.
&n , no entanto, usa o endereço de memória dos elementos do array para acessar seus dados sem copiá-los para uma nova variável. Isso é eficiente em termos de memória. - Estamos simplesmente imprimindo os elementos do array, não os modificando. Portanto, usamos
const
para não alterar acidentalmente os valores do array.
Exemplo 2:obtenha entradas do usuário e armazene-as em uma matriz
#include <iostream>
using namespace std;
int main() {
int numbers[5];
cout << "Enter 5 numbers: " << endl;
// store input from user to array
for (int i = 0; i < 5; ++i) {
cin >> numbers[i];
}
cout << "The numbers are: ";
// print array elements
for (int n = 0; n < 5; ++n) {
cout << numbers[n] << " ";
}
return 0;
}
Saída
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Mais uma vez, usamos um
for
loop para iterar de i = 0
para i = 4
. Em cada iteração, pegamos uma entrada do usuário e a armazenamos em numbers[i]
. Em seguida, usamos outro
for
loop para imprimir todos os elementos do array. Exemplo 3:Exibir soma e média de elementos de matriz usando for Loop
#include <iostream>
using namespace std;
int main() {
// initialize an array without specifying size
double numbers[] = {7, 5, 6, 12, 35, 27};
double sum = 0;
double count = 0;
double average;
cout << "The numbers are: ";
// print array elements
// use of range-based for loop
for (const double &n : numbers) {
cout << n << " ";
// calculate the sum
sum += n;
// count the no. of array elements
++count;
}
// print the sum
cout << "\nTheir Sum = " << sum << endl;
// find the average
average = sum / count;
cout << "Their Average = " << average << endl;
return 0;
}
Saída
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
Neste programa:
- Iniciamos um double array chamado números mas sem especificar seu tamanho. Também declaramos três variáveis duplas sum , contagem , e média .
Aqui,sum =0
ecount = 0
. - Em seguida, usamos um
for
baseado em intervalo loop para imprimir os elementos do array. Em cada iteração do loop, adicionamos o elemento atual do array a sum . - Também aumentamos o valor de count por
1
em cada iteração, para que possamos obter o tamanho do array até o final do loop for. - Depois de imprimir todos os elementos, imprimimos a soma e a média de todos os números. A média dos números é dada por
average = sum / count;
Observação: Usamos um intervalo
for
loop em vez de um for
normal ciclo. Um
for
normal loop exige que especifiquemos o número de iterações, que é dado pelo tamanho do array. Mas um
for
variado loop não requer tais especificações. Array C++ fora dos limites
Se declararmos um array de tamanho 10, o array conterá elementos do índice 0 a 9.
No entanto, se tentarmos acessar o elemento no índice 10 ou superior a 10, resultará em comportamento indefinido.
Linguagem C
- Matrizes C#
- Matriz multidimensional C#
- Matriz irregular em C#
- Operadores C++
- Comentários C++
- Passando array para uma função na programação C++
- Copiar Matrizes Java
- Matrizes em C++ | Declare | Inicializar | Ponteiro para exemplos de matriz
- Alocação dinâmica de matrizes em C++ com exemplo
- MATLAB - Matrizes