Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α12.6 · Είναι απαραίτητοι οι πολυδιάστατοι πίνακες;

Διάλεξη 12, διαφάνεια 23 · Δυσκολία ★★☆ · short-answer · Κεφάλαια: 12

Πίνακες υψηλότερων διαστάσεων λειτουργούν με τον ίδιο τρόπο, προσθέτοντας τον επιθυμητό αριθμό διαστάσεων, π.χ. ένας κύβος του Rubik:

int rubiksCube[6][3][3] = {
    {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}, // Face 1 (e.g., Red)
    {{1, 1, 1}, {1, 1, 1}, {1, 1, 1}}, // Face 2 (e.g., Green)
    {{2, 2, 2}, {2, 2, 2}, {2, 2, 2}}, // Face 3 (e.g., Blue)
    {{3, 3, 3}, {3, 3, 3}, {3, 3, 3}}, // Face 4 (e.g., Yellow)
    {{4, 4, 4}, {4, 4, 4}, {4, 4, 4}}, // Face 5 (e.g., Orange)
    {{5, 5, 5}, {5, 5, 5}, {5, 5, 5}}  // Face 6 (e.g., White)
};

Είναι απαραίτητοι οι πολυδιάστατοι πίνακες;

Υπόδειξη

Θυμηθείτε πώς αποθηκεύεται ένας δισδιάστατος πίνακας στη μνήμη και τον τύπο i * Y + j για τη θέση του a[i][j]. Τι θα χρειαζόταν για να κρατήσετε τα ίδια δεδομένα σε έναν μονοδιάστατο πίνακα, και τι κερδίζετε όταν τον λογαριασμό τον κάνει ο μεταγλωττιστής;

Αριθμός στον οδηγό: Α12.6 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec12-multidim-necessary · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec12-multidim-necessary.html · Markdown (GitHub)