Στη γλώσσα C++, μπορείτε να χρησιμοποιήσετε δισδιάστατους πίνακες για να οργανώσετε τα δεδομένα με τρόπο παρόμοιο με αυτόν ενός πίνακα. Στα μαθηματικά, ειδικά στη γραμμική άλγεβρα, οι δισδιάστατοι πίνακες παρέχουν μια βέλτιστη δομή για την αναπαράσταση πινάκων.

Τι είναι ένας πίνακας 2D στη γλώσσα C++;

Στην C++, ένας δισδιάστατος πίνακας είναι μια δομή δεδομένων που οργανώνει τα στοιχεία σε μια δισδιάστατη μορφή που μοιάζει με πίνακα. Σε αντίθεση με τους μονοδιάστατους πίνακες, οι οποίοι απλώς αποθηκεύουν τα στοιχεία σε μια ακολουθία, ένας δισδιάστατος πίνακας οργανώνει τα δεδομένα σε σειρές και στήλες. Κάθε στοιχείο σε έναν δισδιάστατο πίνακα αναγνωρίζεται από τους δείκτες σειράς και στήλης του, διευκολύνοντας την πρόσβαση και τον χειρισμό μεμονωμένων σημείων δεδομένων. Από μαθηματικές πράξεις που περιλαμβάνουν πίνακες έως τη διαχείριση δεδομένων ράστερ, υπάρχουν διάφορες χρήσεις για αυτόν τον τύπο πίνακα.

Πώς είναι δομημένος ένας πίνακας 2D στη γλώσσα C++;

Στη γλώσσα C++, η σύνταξη για τη δήλωση δισδιάστατων πινάκων αποτελείται από τα ακόλουθα στοιχεία:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: Ο τύπος δεδομένων καθορίζει τον τύπο των δεδομένων που πρέπει να αποθηκευτούν στον πίνακα 2D. Αυτός μπορεί να είναι, για παράδειγμα, int για ακέραιους αριθμούς, double για αριθμούς κινητής υποδιαστολής ή τύπους δεδομένων που ορίζονται από τον χρήστη.
  • arrayName: Το όνομα λειτουργεί ως αναγνωριστικό που μπορείτε να χρησιμοποιήσετε για να αποκτήσετε πρόσβαση σε ολόκληρο τον πίνακα.
  • num_rows: Αυτό το μέρος της σύνταξης καθορίζει πόσες σειρές πρέπει να έχει ο πίνακας 2D.
  • num_cols: Εδώ καθορίζετε τον αριθμό των στηλών για κάθε σειρά στον πίνακα 2D.

Στο παρακάτω παράδειγμα, θα ορίσουμε έναν δισδιάστατο πίνακα με το όνομα matrix. Αποτελείται από 3 σειρές και 4 στήλες και έχει συνολικά 12 στοιχεία.

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

Πώς να εξάγετε έναν πίνακα 2D σε C++

Μπορείτε να εξάγετε έναν πίνακα 2D χρησιμοποιώντας έναν βρόχο for. Ο εξωτερικός βρόχος επαναλαμβάνεται στις σειρές, ενώ ο εσωτερικός βρόχος επαναλαμβάνεται στις στήλες κάθε σειράς. Η δήλωση std::cout << matrix[i][j] << " "; εμφανίζει κάθε στοιχείο. Μετά από κάθε σειρά, θα δημιουργήσουμε μια νέα σειρά χρησιμοποιώντας std::cout << std::endl;. Αυτό εξασφαλίζει μια καλύτερη μορφή για την έξοδο.

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

Τα στοιχεία του πίνακα 2D εμφανίζονται γραμμή προς γραμμή στην έξοδο:

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

Παραδείγματα χρήσης δισδιάστατων πινάκων στη γλώσσα C++

Η προγραμματισμός με C++ σημαίνει ότι αργά ή γρήγορα θα ασχοληθείτε με πίνακες. Στην επόμενη ενότητα, θα σας δείξουμε τυπικές εφαρμογές για δισδιάστατους πίνακες σε C++.

Δισδιάστατοι πίνακες με εισαγωγή δεδομένων από τον χρήστη

Ακολουθεί ένα απλό παράδειγμα σε C++, όπου αφήνουμε τον χρήστη να ορίσει δυναμικά έναν πίνακα 2D. Πρώτα, ζητάμε από τον χρήστη να εισαγάγει τον αριθμό των γραμμών και των στηλών, και στη συνέχεια τα στοιχεία του πίνακα.

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

Εάν 2 σειρές και 3 στήλες και οι τιμές 1, 2, 3, 4, 5, 6 μεταβιβαστούν ως εισαγωγή χρήστη, ο πίνακας 2D θα είναι:

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

Προσθήκη πινάκων με δισδιάστατους πίνακες

Με τελεστές C όπως το +, μπορούμε εύκολα να προσθέσουμε πίνακες στο 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++

Πρώτα, δημιουργούμε δύο πίνακες 2x2, A και B. Στη συνέχεια, υπολογίζουμε το άθροισμά τους, το οποίο θα εμφανιστεί στον πίνακα που προκύπτει. Η συνάρτηση matrixAddition δέχεται τους δύο αρχικούς πίνακες και τον πίνακα που προκύπτει ως παραμέτρους και εκτελεί την πρόσθεση. Στη συνέχεια, η συνάρτηση displayMatrix εμφανίζει το άθροισμα των πινάκων A και B στην κονσόλα.

Ακολουθεί το αποτέλεσμα:

Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Sum (A + B):
6 8
10 12
c++
Go to Main Menu