Arrays 2D em C++ são usados para organizar dados no formato se­me­lhante ao de uma tabela. No campo da ma­te­má­tica, es­pe­ci­al­mente na álgebra linear, arrays 2D oferecem a estrutura ideal para re­pre­sen­tar matrizes.

O que é 2D array em C++?

Um 2D array em C++ é uma estrutura de dados utilizada para armazenar elementos em um arranjo tabular bi­di­men­si­o­nal. Ao contrário dos arrays uni­di­men­si­o­nais, que contêm apenas uma linha de elementos, um array 2D organiza os dados em linhas e colunas. Os elementos em um array bi­di­men­si­o­nal são definidos por suas posições, es­pe­ci­fi­ca­das por índices de linha e coluna. Essa estrutura facilita o acesso e a ma­ni­pu­la­ção de pontos de dados in­di­vi­du­ais. Os arrays 2D têm diversas apli­ca­ções, desde cálculos ma­te­má­ti­cos com matrizes até a gestão de dados em formato de grade.

Sintaxe de 2D array em C++

Na linguagem C++, a sintaxe para a de­cla­ra­ção de um array 2D é composta pelos seguintes elementos:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: O tipo de dados es­pe­ci­fica que tipo de dados serão ar­ma­ze­na­dos nas células do array 2D. Pode ser int para números inteiros, double para números de ponto flutuante, ou tipos de dados per­so­na­li­za­dos.
  • arrayName: O nome funciona como um iden­ti­fi­ca­dor que permite acessar todo o array.
  • num_rows: Esta parte da sintaxe indica quantas linhas o array 2D terá.
  • num_cols: Aqui você define o número de colunas para cada linha no array 2D.

No exemplo abaixo, estamos definindo um array 2D chamado matrix com 3 linhas e 4 colunas, to­ta­li­zando 12 elementos.

int matrix[3][4] = {{1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}};
c++

Gerar 2D array em C++

Podemos gerar um 2D array em C++ usando um loop for. O loop externo itera sobre as linhas, enquanto o loop interno percorre as colunas de cada linha. A instrução std::cout << matrix[i][j] << " "; exibe cada elemento. Após cada linha, adi­ci­o­na­mos std::cout << std::endl; para formatar melhor a saída.

#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++

Na saída, os elementos do array 2D são exibidos linha por linha:

1 2 3 4
5 6 7 8
9 10 11 12
c++

Exemplos de aplicação de 2D array em C++

Quando você está apren­dendo a linguagem de pro­gra­ma­ção C++, even­tu­al­mente você tra­ba­lhará com arrays. Abaixo, mostramos a você apli­ca­ções típicas para arrays 2D em C++.

2D array em C++ como entrada do usuário

Aqui está um exemplo simples em C++ onde não definimos um array 2D com valores fixos, mas sim o tratamos como entrada do usuário. Neste caso, so­li­ci­ta­mos ao usuário que insira o número de linhas e colunas, seguido pelos elementos reais do 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++

Se o usuário fornecer 2 linhas, 3 colunas e os valores 1, 2, 3, 4, 5, 6 como entrada, o array 2D seria o seguinte:

2D array:
1 2 3
4 5 6
c++

Adição de matriz com 2D arrays em C++

Usando ope­ra­do­res em C, como +, podemos fa­cil­mente adicionar matrizes com 2D arrays em 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++

Primeiro, criamos as matrizes 2x2 A e B, e sua soma é calculada e exibida na matriz re­sul­tante. A função matrixAddition recebe as duas matrizes de entrada e a matriz re­sul­tante como ar­gu­men­tos e realiza a adição. A função displayMatrix gera a soma das matrizes no console.

Obteremos como saída:

Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12
c++
Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana
Ir para o menu principal