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 índice0. - 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 elementox(1)será 2124d, la dirección dex(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 deintes 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:
- 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. - 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:
- 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 =0andcount = 0. - Then we used a range based
forloop to print the array elements. In each iteration of the loop, we add the current array element to sum. - 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. - 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 por
average = 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.








