Matrices C ++ (con ejemplos)

En este tutorial, aprenderemos a trabajar con matrices. Aprenderemos a declarar, inicializar y acceder a elementos de matriz en programación C ++ con la ayuda de ejemplos.

En C ++, una matriz es una variable que puede almacenar varios valores del mismo tipo. Por ejemplo,

Suponga que una clase tiene 27 estudiantes y necesitamos almacenar las calificaciones de todos ellos. En lugar de crear 27 variables separadas, podemos simplemente crear una matriz:

 double grade(27);

Aquí, grade es una matriz que puede contener un máximo de 27 elementos de doubletipo.

En C ++, el tamaño y el tipo de matrices no se pueden cambiar después de su declaración.

Declaración de matriz de C ++

 dataType arrayName(arraySize);

Por ejemplo,

 int x(6);

Aquí,

  • int - tipo de elemento a almacenar
  • x - nombre de la matriz
  • 6 - tamaño de la matriz

Elementos de acceso en la matriz C ++

En C ++, cada elemento de una matriz está asociado con un número. El número se conoce como índice de matriz. Podemos acceder a elementos de una matriz utilizando esos índices.

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

Considere la matriz x que hemos visto anteriormente.

Elementos de una matriz en C ++

Algunas cosas para recordar:

  • Los índices de matriz comienzan con 0. Lo que significa que x (0) es el primer elemento almacenado en el índice 0.
  • Si el tamaño de una matriz es n, el último elemento se almacena en index (n-1). En este ejemplo, x (5) es el último elemento.
  • Los elementos de una matriz tienen direcciones consecutivas. Por ejemplo, suponga que la dirección inicial de x(0)es 2120d. Entonces, la dirección del siguiente elemento x(1)será 2124d, la dirección de x(2)será 2128d y así sucesivamente.
    Aquí, el tamaño de cada elemento se incrementa en 4. Esto se debe a que el tamaño de intes 4 bytes.

Inicialización de matriz C ++

En C ++, es posible inicializar una matriz durante la declaración. Por ejemplo,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
Elementos de matriz de C ++ y sus datos

Otro método para inicializar la matriz durante la declaración:

 // declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);

Aquí, no hemos mencionado el tamaño de la matriz. En tales casos, el compilador calcula automáticamente el tamaño.

Matriz C ++ con miembros vacíos

En C ++, si una matriz tiene un tamaño n, podemos almacenar hasta n elementos en la matriz. Sin embargo, ¿qué pasará si almacenamos menos de n número de elementos?

Por ejemplo,

 // store only 3 elements in the array int x(6) = (19, 10, 8);

Aquí, la matriz x tiene un tamaño de 6. Sin embargo, lo hemos inicializado con solo 3 elementos.

En tales casos, el compilador asigna valores aleatorios a los lugares restantes. A menudo, este valor aleatorio es simplemente 0.

A los miembros vacíos de la matriz se les asigna automáticamente el valor 0

¿Cómo insertar 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(i-1);

Ejemplo 1: Visualización de 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; )

Salida

 Los números son: 7 5 6 12 35 Los números son: 7 5 6 12 35

Aquí, hemos utilizado un forbucle para iterar de i = 0a i = 4. En cada iteración, hemos impreso numbers(i).

De nuevo usamos un rango basado en bucle for para imprimir los elementos de la matriz. Para obtener más información sobre este bucle, consulte C ++ Ranged for Loop.

Nota: En nuestro ciclo basado en rango, hemos usado el código en const int &nlugar de int ncomo declaración de rango. Sin embargo, const int &nes más preferido porque:

  1. El uso int nsimplemente copia los elementos de la matriz a la variable n durante cada iteración. Esto no es eficiente en la memoria.
    & n, sin embargo, usa la dirección de memoria de los elementos del arreglo para acceder a sus datos sin copiarlos a una nueva variable. Esto es eficiente en memoria.
  2. Simplemente estamos imprimiendo los elementos de la matriz, no modificándolos. Por lo tanto, usamos constpara no cambiar accidentalmente los valores de la matriz.

Ejemplo 2: tomar entradas del usuario y almacenarlas en una 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; )

Salida

 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. También aumentamos el valor de count por 1en cada iteración, de modo que podamos obtener el tamaño de la matriz al final del ciclo for.
  4. Después de imprimir todos los elementos, imprimimos la suma y el promedio de todos los números. El promedio de los números viene dado poraverage = sum / count;

Nota: Usamos un forciclo a distancia en lugar de un forciclo normal .

Un forciclo normal requiere que especifiquemos el número de iteraciones, que viene dado por el tamaño de la matriz.

Pero un forbucle a distancia no requiere tales especificaciones.

Matriz C ++ fuera de límites

Si declaramos una matriz de tamaño 10, la matriz contendrá elementos del índice 0 al 9.

Sin embargo, si intentamos acceder al elemento en el índice 10 o más de 10, resultará en un comportamiento indefinido.

Articulos interesantes...