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 double
tipo.
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.

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 deint
es 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);

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
.

¿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 for
bucle para iterar de i = 0
a 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 &n
lugar de int n
como declaración de rango. Sin embargo, const int &n
es más preferido porque:
- El uso
int n
simplemente 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
const
para 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 =0
andcount = 0
. - 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. - También aumentamos el valor de count por
1
en 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 for
ciclo a distancia en lugar de un for
ciclo normal .
Un for
ciclo normal requiere que especifiquemos el número de iteraciones, que viene dado por el tamaño de la matriz.
Pero un for
bucle 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.