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 multidimensionales de C++

Arreglos multidimensionales de C++

En este tutorial, aprenderemos sobre arreglos multidimensionales en C++. Más específicamente, cómo declararlos, acceder a ellos y usarlos de manera eficiente en nuestro programa.

En C++, podemos crear una matriz de una matriz, conocida como matriz multidimensional. Por ejemplo:

int x[3][4];

Aquí, x es una matriz bidimensional. Puede contener un máximo de 12 elementos.

Podemos pensar en esta matriz como una tabla con 3 filas y cada fila tiene 4 columnas como se muestra a continuación.

Las matrices tridimensionales también funcionan de manera similar. Por ejemplo:

float x[2][4][3];

Esta matriz x puede contener un máximo de 24 elementos.

Podemos averiguar el número total de elementos en la matriz simplemente multiplicando sus dimensiones:

2 x 4 x 3 = 24

Inicialización de matriz multidimensional

Como una matriz normal, podemos inicializar una matriz multidimensional en más de una forma.

1. Inicialización de matriz bidimensional

int test[2][3] = {2, 4, 5, 9, 0, 19};

El método anterior no es el preferido. A continuación se proporciona una mejor manera de inicializar esta matriz con los mismos elementos de la matriz:

int  test[2][3] = { {2, 4, 5}, {9, 0, 19}};

Esta matriz tiene 2 filas y 3 columnas, por lo que tenemos dos filas de elementos con 3 elementos cada una.


2. Inicialización de matriz tridimensional

int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 
                 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};

Esta no es una buena manera de inicializar una matriz tridimensional. Una mejor manera de inicializar esta matriz es:

int test[2][3][4] = { 
                     { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },
                     { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }
                 };

Observe las dimensiones de esta matriz tridimensional.

La primera dimensión tiene el valor 2 . Entonces, los dos elementos que componen la primera dimensión son:

Element 1 = { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} }
Element 2 = { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }

La segunda dimensión tiene el valor 3 . Observe que cada uno de los elementos de la primera dimensión tiene tres elementos cada uno:

{3, 4, 2, 3}, {0, -3, 9, 11} and {23, 12, 23, 2} for Element 1.
{13, 4, 56, 3}, {5, 9, 3, 5} and {5, 1, 4, 9} for Element 2.

Finalmente, hay cuatro int números dentro de cada uno de los elementos de la segunda dimensión:

{3, 4, 2, 3}
{0, -3, 9, 11}
... .. ...
... .. ...

Ejemplo 1:matriz bidimensional

// C++ Program to display all elements
// of an initialised two dimensional array

#include <iostream>
using namespace std;

int main() {
    int test[3][2] = {{2, -5},
                      {4, 0},
                      {9, 1}};

    // use of nested for loop
    // access rows of the array
    for (int i = 0; i < 3; ++i) {

        // access columns of the array
        for (int j = 0; j < 2; ++j) {
            cout << "test[" << i << "][" << j << "] = " << test[i][j] << endl;
        }
    }

    return 0;
}

Salida

test[0][0] = 2
test[0][1] = -5
test[1][0] = 4
test[1][1] = 0
test[2][0] = 9
test[2][1] = 1

En el ejemplo anterior, hemos inicializado un int bidimensional matriz llamada prueba que tiene 3 "filas" y 2 "columnas".

Aquí, hemos usado el for anidado bucle para mostrar los elementos de la matriz.

Finalmente, imprimimos los elementos de la matriz en cada iteración.


Ejemplo 2:Toma de entrada para matriz bidimensional

#include <iostream>
using namespace std;

int main() {
    int numbers[2][3];

    cout << "Enter 6 numbers: " << endl;

    // Storing user input in the array
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> numbers[i][j];
        }
    }

    cout << "The numbers are: " << endl;

    //  Printing array elements
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << "numbers[" << i << "][" << j << "]: " << numbers[i][j] << endl;
        }
    }

    return 0;
}

Salida

Enter 6 numbers: 
1
2
3
4
5
6
The numbers are:
numbers[0][0]: 1
numbers[0][1]: 2
numbers[0][2]: 3
numbers[1][0]: 4
numbers[1][1]: 5
numbers[1][2]: 6

Aquí, hemos usado un for anidado loop para tomar la entrada de la matriz 2d. Una vez que se ha tomado toda la entrada, hemos usado otro for anidado bucle para imprimir los miembros de la matriz.


Ejemplo 3:matriz tridimensional

// C++ Program to Store value entered by user in
// three dimensional array and display it.

#include <iostream>
using namespace std;

int main() {
    // This array can store upto 12 elements (2x3x2)
    int test[2][3][2] = {
                            {
                                {1, 2},
                                {3, 4},
                                {5, 6}
                            }, 
                            {
                                {7, 8}, 
                                {9, 10}, 
                                {11, 12}
                            }
                        };

    // Displaying the values with proper index.
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                cout << "test[" << i << "][" << j << "][" << k << "] = " << test[i][j][k] << endl;
            }
        }
    }

    return 0;
}

Salida

test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12

El concepto básico de imprimir elementos de una matriz 3D es similar al de una matriz 2D.

Sin embargo, dado que estamos manipulando 3 dimensiones, usamos un bucle for anidado con 3 bucles en total en lugar de solo 2:

Como podemos ver, la complejidad de la matriz aumenta exponencialmente con el aumento de las dimensiones.


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