Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Matrices C++

Matrices de C++

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

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

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

double grade[27];

Aquí, grado es una matriz que puede contener un máximo de 27 elementos de double tipo.

En C++, el tamaño y el tipo de las 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í,


Acceder a elementos en matriz C++

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

// syntax to access array elements
array[index];

Considere la matriz x hemos visto arriba.

Pocas cosas para recordar:


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.


Arreglo C++ con miembros vacíos

En C++, si una matriz tiene un tamaño n , podemos almacenar hasta n número de elementos en la matriz. Sin embargo, ¿qué sucederá 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[0];

// print ith element of the array
cout >> mark[i-1];

Ejemplo 1:Mostrar 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;
}

Salida

The numbers are: 7  5  6  12  35
The numbers are: 7  5  6  12  35

Aquí, hemos usado un for bucle para iterar desde i = 0 a i = 4 . En cada iteración, hemos impreso numbers[i] .

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

Nota: En nuestro ciclo basado en rangos, hemos usado el código const int &n en lugar de int n como la declaración de rango. Sin embargo, el const int &n es más preferido porque:

  1. Usando int n simplemente copia los elementos de la matriz a la variable n durante cada iteración. Esto no es eficiente en memoria.

    &n , sin embargo, usa la dirección de memoria de los elementos de la matriz para acceder a sus datos sin copiarlos en una nueva variable. Esto es eficiente en memoria.
  2. Simplemente imprimimos los elementos de la matriz, no los modificamos. 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 <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;
}

Salida

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

Una vez más, hemos utilizado un for bucle para iterar desde i = 0 a i = 4 . En cada iteración, tomamos una entrada del usuario y la almacenamos en numbers[i] .

Luego, usamos otro for bucle para imprimir todos los elementos de la matriz.


Ejemplo 3:Muestra la suma y el promedio de los elementos de la 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;
}

Salida

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

En este programa:

  1. Hemos inicializado un doble matriz llamada números pero sin especificar su tamaño. También declaramos tres variables dobles sum , contar y promedio .

    Aquí, sum =0 y count = 0 .
  2. Luego usamos un for basado en un rango bucle para imprimir los elementos de la matriz. En cada iteración del ciclo, agregamos el elemento de matriz actual a sum .
  3. También aumentamos el valor de count por 1 en cada iteración, para 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 está dado por average = sum / count;

Nota: Usamos un rango for bucle en lugar de un for normal bucle.

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

Pero un for a distancia loop no requiere tales especificaciones.


Arreglo C++ fuera de los 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.


Lenguaje C

  1. Matrices de C#
  2. Matriz multidimensional de C#
  3. Matriz irregular de C#
  4. Conversión de tipo C++
  5. Operadores de C++
  6. Comentarios de C++
  7. Pasar matriz a una función en programación C++
  8. Matrices de copia de Java
  9. Matrices en C++ | Declarar | Inicializar | Ejemplos de puntero a matriz
  10. C++ Asignación dinámica de arreglos con ejemplo
  11. MATLAB - Matrices