Cómo crear y utilizar arrays bidimensionales (two dimensional array) en C++
Un array bidimensional en C++ se utiliza para organizar los datos en forma de tabla. En áreas matemáticas, especialmente en álgebra lineal, los arrays bidimensionales ofrecen una estructura óptima para la visualización de matrices.
¿Qué es exactamente un 2D array in C++?
Un array bidimensional en C++ es una estructura de datos para almacenar elementos en una disposición bidimensional similar a una tabla. A diferencia de los arrays unidimensionales, que solo contienen una serie de elementos, un array bidimensional organiza los datos en filas y columnas. Los elementos de un array bidimensional se definen por sus posiciones, que se especifican mediante índices de fila y columna. Esta estructura facilita el acceso y la manipulación de puntos de datos individuales. Los arrays bidimensionales tienen múltiples aplicaciones, desde el cálculo matemático con matrices hasta la gestión de datos en formato raster.
Así se estructura un array bidimensional en C++
En C++, la sintaxis para la declaración de un array bidimensional consta de los siguientes elementos:
data_type arrayName[num_rows][num_cols];
c++-
data_type
: El tipo de dato especifica qué tipo de datos se deben almacenar en las celdas del array bidimensional. Esto puede ser, por ejemplo,int
para números enteros,double
para números de punto flotante o incluso tipos de datos personalizados. -
arrayName
: El nombre actúa como identificador mediante el cual se puede acceder a todo el array. -
num_rows
: Este fragmento de la sintaxis indica cuántas filas debe tener el array bidimensional. -
num_cols
: Aquí se especifica la cantidad de columnas para cada fila en el array bidimensional.
En el siguiente ejemplo, definimos un array bidimensional llamado matrix
con 2 filas y 4 columnas, lo que equivale a un total de 12 elementos.
int matrix[3][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};
c++Crear un array bidimensional en C++
Podemos crear un array bidimensional utilizando un bucle for. El bucle externo itera sobre las filas, mientras que el bucle interno recorre las columnas de cada fila. La instrucción std::cout << matrix[i][j] << " ";
muestra cada elemento. Después de cada fila, generamos una nueva línea con std::cout << std::endl;
para formatear mejor el resultado.
#include <iostream>
int main() {
int matrix[3][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
c++En el resultado, los elementos del array bidimensional se representan fila por fila:
1 2 3 4
5 6 7 8
9 10 11 12
c++Ejemplos de aplicación para arrays bidimensionales en C++
Si aprendes C++, eventualmente trabajarás con arrays. A continuación, te mostramos ejemplos típicos de aplicaciones para arrays bidimensionales en C++.
Array bidimensional en C++ como entrada del usuario
He aquí un ejemplo sencillo en C++ en el que no definimos un array bidimensional con valores fijos, sino que lo procesamos como entrada del usuario. En este caso, pedimos al usuario que introduzca el número de filas y columnas, seguido de los elementos reales del array:
#include <iostream>
int main() {
int numRows, numCols;
std::cout << "Number of rows: ";
std::cin >> numRows;
std::cout << "Number of columns: ";
std::cin >> numCols;
int userArray[numRows][numCols];
std::cout << "Please enter in elements:\n";
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
std::cout << "Element [" << i << "][" << j << "]: ";
std::cin >> userArray[i][j];
}
}
std::cout << "2D array:\n";
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
std::cout << userArray[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
c++Si se pasan 2
filas y 3
columnas y los valores 1, 2, 3, 4, 5, 6
como entrada del usuario, entonces al array bidimensional es:
2D array:
1 2 3
4 5 6
c++Suma de matrices con arrays bidimensionales
Usando operadores C como +
podemos sumar fácilmente matrices con arrays bidimensionales en C++.
#include <iostream>
const int numRows = 2;
const int numCols = 2;
void matrixAddition(int A[][numCols], int B[][numCols], int result[][numCols]) {
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
result[i][j] = A[i][j] + B[i][j];
}
}
}
void displayMatrix(int matrix[][numCols]) {
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j < numCols; ++j) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
}
int main() {
int matrixA[numRows][numCols] = {{1, 2}, {3, 4}};
int matrixB[numRows][numCols] = {{5, 6}, {7, 8}};
int resultMatrix[numRows][numCols];
matrixAddition(matrixA, matrixB, resultMatrix);
// Output of matrix A and B and their sum
std::cout << "Matrix A:\n";
displayMatrix(matrixA);
std::cout << "\nMatrix B:\n";
displayMatrix(matrixB);
std::cout << "\nSum (A + B):\n";
displayMatrix(resultMatrix);
return 0;
}
c++En primer lugar, creamos las matrices 2x2
A
y B
, y su suma se calcula y se muestra en la matriz resultante. La función matrixAddition
toma las dos matrices iniciales y la matriz resultante como argumentos y realiza la suma. La función displayMatrix
muestra la suma de las matrices en la consola.
Obtenemos este resultado:
Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12
c++- Rápido, seguro, flexible y escalable
- Seguro con SSL y protección DDoS
- Dominio y asesor personal incluidos