Arrays C ++ (com exemplos)

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 classe tenha 27 alunos e precisamos armazenar as notas de todos eles. Em vez de criar 27 variáveis ​​separadas, podemos simplesmente criar uma matriz:

 double grade(27);

Aqui, grau é uma matriz que pode conter no máximo 27 elementos de doubletipo.

Em C ++, o tamanho e o tipo dos arrays não podem ser alterados após sua declaração.

Declaração de array 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

Elementos de acesso na matriz C ++

Em C ++, cada elemento em uma matriz é associado a um número. O número é conhecido como índice de matriz. Podemos acessar os elementos de um array usando esses índices.

 // syntax to access array elements array(index);

Considere o array x que vimos acima.

Elementos de uma matriz em C ++

Algumas coisas para lembrar:

  • Os índices da matriz começam com 0. O que significa x (0) é o primeiro elemento armazenado no índice 0.
  • 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 uma matriz possuem endereços consecutivos. Por exemplo, suponha que o endereço inicial de x(0)seja 2120d. Então, o endereço do próximo elemento x(1)será 2124d, o endereço de x(2)será 2128d e assim por diante.
    Aqui, o tamanho de cada elemento é aumentado em 4. Isso ocorre porque o tamanho de inté 4 bytes.

Inicialização de array 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);
Elementos C ++ Array e seus dados

Outro método para inicializar a matriz 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 tem 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, o array x tem um tamanho de 6. No entanto, o inicializamos com apenas 3 elementos.

Nesses casos, o compilador atribui valores aleatórios aos lugares restantes. Muitas vezes, esse valor aleatório é simples 0.

Membros vazios da matriz são automaticamente atribuídos ao valor 0

Como inserir e imprimir elementos do array?

 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(i-1);

Exemplo 1: Exibindo Elementos de Matriz

 #include 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 << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )

Resultado

 Os números são: 7 5 6 12 35 Os números são: 7 5 6 12 35

Aqui, usamos um forloop para iterar de i = 0para i = 4. Em cada iteração, imprimimos numbers(i).

Mais uma vez, usamos um intervalo baseado em loop for para imprimir os elementos do array. Para aprender mais sobre este loop, verifique C ++ Ranged for Loop.

Nota: Em nosso loop baseado em intervalo, usamos o código em const int &nvez de int ncomo a declaração de intervalo. No entanto, const int &né mais preferido porque:

  1. Usar int nsimplesmente copia os elementos do array para a variável n durante cada iteração. Isso não é eficiente em termos de memória.
    & n, entretanto, 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.
  2. Estamos simplesmente imprimindo os elementos do array, não os modificando. Portanto, usamos de constmodo a não alterar acidentalmente os valores do array.

Exemplo 2: pegue entradas do usuário e armazene-as em uma matriz

 #include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )

Resultado

 Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15

Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers(i).

Then, we used another for loop to print all the array elements.

Example 3: Display Sum and Average of Array Elements Using for Loop

 #include 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 << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )

Output

 The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333

In this program:

  1. We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
    Here, sum =0 and count = 0.
  2. Then we used a range based for loop to print the array elements. In each iteration of the loop, we add the current array element to sum.
  3. Também aumentamos o valor de count 1em cada iteração, para que possamos obter o tamanho do array ao final do loop for.
  4. 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 poraverage = sum / count;

Nota: Usamos um forloop variado em vez de um forloop normal .

Um forloop normal exige que especifiquemos o número de iterações, que é dado pelo tamanho do array.

Mas um forloop de alcance não requer tais especificações.

Array C ++ fora dos limites

Se declararmos uma matriz de tamanho 10, a matriz conterá elementos do índice 0 a 9.

No entanto, se tentarmos acessar o elemento no índice 10 ou mais de 10, isso resultará em comportamento indefinido.

Artigos interessantes...