multidimensional arrays c
Ο ρόλος της πολυδιάστατης σειράς στο C ++ με παραδείγματα.
Μέχρι τώρα, στα προηγούμενα σεμινάριά μας, έχουμε δει όλα για μονοδιάστατες συστοιχίες.
Το C ++ υποστηρίζει επίσης πίνακες με περισσότερες από μία ιδιότητες. Αυτά ονομάζονται πολυδιάστατες συστοιχίες. Οι πολυδιάστατες συστοιχίες είναι συνήθως διατεταγμένες σε μορφή πίνακα, δηλαδή σε σειρά-κύρια σειρά.
=> Αναζητήστε ολόκληρη τη σειρά προπόνησης C ++ εδώ.
Τι θα μάθετε:
Πολυδιάστατες συστοιχίες σε C ++
Εξετάστε έναν πολυδιάστατο πίνακα διαστάσεων 3 × 2, δηλαδή 3 σειρών και 2 στηλών.
Αντιπροσωπεύουμε αυτόν τον πίνακα ως εξής:
R1γ1 | R2c2 |
R2c1 | R2c2 |
R3γ1 | R3γ2 |
Όπως φαίνεται στην παραπάνω αναπαράσταση, κάθε κελί Π.χ. Το R1C1 θα διατηρήσει τα περιεχόμενα του πίνακα.
Ο αριθμός των στοιχείων που υπάρχουν σε έναν πολυδιάστατο πίνακα είναι το προϊόν των διαστάσεων του. Αυτό σημαίνει ότι εάν οι διαστάσεις ενός πίνακα είναι 3 × 2, τότε ο αριθμός των στοιχείων σε αυτόν τον πίνακα είναι το προϊόν των 3 και 2, δηλαδή 6. Ομοίως, εάν οι διαστάσεις του πολυδιάστατου πίνακα είναι (10) (20) (10) τότε ο αριθμός των στοιχείων σε αυτόν τον πίνακα είναι 10 * 20 * 10 = 2000.
Ένας δισδιάστατος πίνακας είναι η απλούστερη μορφή του πολυδιάστατου πίνακα που χρησιμοποιείται από το C ++.
Δήλωση μιας σειράς
Η γενική δήλωση του πολυδιάστατου πίνακα στο C ++ φαίνεται παρακάτω:
dataType arrayName (size1)(size2)….(sizen);
Εδώ, το DataType είναι ο τύπος δεδομένων του πίνακα. Ο τύπος δεδομένων πρέπει να υποστηρίζεται από το C ++.
arrayName είναι το όνομα του πολυδιάστατου πίνακα.
Size1, size2… .sizen είναι τα μεγέθη καθεμιάς από τις διαστάσεις του πίνακα.
Για παράδειγμα,ας δηλώσουμε έναν πίνακα μεγέθους 3 × 2, δηλαδή έναν δισδιάστατο πίνακα, myarray_2d.
int myarray_2d (3)(2);
Ένας δισδιάστατος πίνακας αντιπροσωπεύεται με τη μορφή σειρών και στηλών.
Έτσι, η παραπάνω δήλωση του πίνακα μπορεί να αναπαρασταθεί ως εξής:
myarray_2d (0) (0) | myarray_2d (0) (1) |
myarray_2d (1) (0) | myarray_2d (1) (1) |
myarray_2d (2) (0) | myarray_2d (2) (1) |
Όπως φαίνεται στην παραπάνω αναπαράσταση, κάθε στοιχείο μιας δισδιάστατης συστοιχίας έχει πρόσβαση ως myarray_2d (i) (j) όπου i είναι ο αριθμός σειράς και κυμαίνεται από 0 έως n-1 όπου n είναι το μέγεθος διάστασης και j είναι το αριθμός στήλης και κυμαίνεται από 0 έως m-1 όπου m είναι το μέγεθος διάστασης της στήλης.
Αρχικοποίηση πολυδιάστατων συστοιχιών
Μπορούμε να προετοιμάσουμε πολυδιάστατες συστοιχίες παρόμοιες με τις μονοδιάστατες συστοιχίες. Οι πολυδιάστατες συστοιχίες αρχικοποιούνται κατά σειρά.
Υπάρχουν δύο τρόποι με τους οποίους μπορούμε να αρχίσουμε τις πολυδιάστατες συστοιχίες.
# 1) Εξετάστε έναν πίνακα με διαστάσεις (3) (2) που ονομάζεται myarray:
int myarray(3)(2) = {1, 2,3,4,5,6};
Εδώ, η αρχικοποίηση του πίνακα γίνεται από αριστερά προς τα δεξιά σε σειρά με σειρά. Καθώς οι διαστάσεις είναι (3) (2), τα δύο πρώτα στοιχεία θα σχηματίσουν την πρώτη σειρά και ούτω καθεξής.
Η εικονική αναπαράσταση αυτής της αρχικοποίησης θα φαίνεται όπως φαίνεται παρακάτω:
1 | δύο |
3 | 4 |
5 | 6 |
# 2) Ο ίδιος πίνακας που φαίνεται παραπάνω μπορεί να αρχικοποιηθεί με διαφορετικό τρόπο όπως φαίνεται παρακάτω:
int myarray(3)(2) = { {1,2}, {3,4}, {5,6} };
Εδώ, η προετοιμασία γίνεται από αριστερά προς τα δεξιά και κάθε στοιχείο αντιστοιχεί σε μία σειρά. Καθώς υπάρχουν τρεις σειρές για αυτόν τον πίνακα, έχουμε τρία εσωτερικά στοιχεία που περικλείονται σε σγουρά τιράντες ({}).
Αυτός ο τρόπος αρχικοποίησης είναι πιο ευανάγνωστος και είναι επωφελής όταν αυξάνονται οι διαστάσεις του πίνακα.
Πρόσβαση σε πολυδιάστατες συστοιχίες
Τα πολυδιάστατα στοιχεία πίνακα έχουν πρόσβαση χρησιμοποιώντας το ευρετήριο γραμμών και το ευρετήριο στηλών.
Ας δούμε ένα παράδειγμα ενός δισδιάστατου πίνακα με διαστάσεις (3) (3). Παρακάτω είναι ο κωδικός για την αρχικοποίησή του.
int newarray (3)(3) = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
Εάν θέλω να αποκτήσω πρόσβαση στο δεύτερο στοιχείο στην πρώτη σειρά και να το αντιστοιχίσω σε ακέραια μεταβλητή, τότε η γραμμή κώδικα θα είναι:
int val_2d = newarray(0)(1);
Ακολουθεί ένα δείγμα προγράμματος που δείχνει τη δήλωση, την αρχικοποίηση και την πρόσβαση ενός δισδιάστατου πίνακα.
#include using namespace std; int main() { int myarray(3)(3) = {{1,2,3},{4,5,6},{7,8,9}}; for(int i=0;i <3;i++) { for(int j=0;j<3;j++) { cout< Αυτό το πρόγραμμα παράγει την ακόλουθη έξοδο:
1 2 3 4 5 6 7 8 9
Όπως φαίνεται στο παραπάνω πρόγραμμα, μια δισδιάστατη συστοιχία δηλώνεται και στη συνέχεια αρχικοποιείται. Στη συνέχεια, για πρόσβαση και εκτύπωση όλων των στοιχείων του πίνακα, έχουμε ορίσει δύο για βρόχους. Το εξωτερικό για βρόχο είναι η πρόσβαση στα στοιχεία κατά σειρά. Το εσωτερικό για βρόχο λειτουργεί ως μετρητής για την πρόσβαση στα στοιχεία σε κάθε στήλη.
mysql vs oracle vs sql server
Με αυτόν τον τρόπο, έχουμε πρόσβαση σε κάθε στοιχείο αυτής της δισδιάστατης συστοιχίας και το εμφανίζουμε στην οθόνη.
συμπέρασμα
Οι πολυδιάστατες συστοιχίες μπορούν να έχουν οποιοδήποτε αριθμό διαστάσεων και καθώς ο αριθμός των διαστάσεων αυξάνεται, η πολυπλοκότητα αυξάνεται επίσης ανάλογα.
Αν και έχουμε χρησιμοποιήσει δισδιάστατους πίνακες σε όλα τα παραπάνω παραδείγματα, μπορούμε να κωδικοποιήσουμε πίνακες με υψηλότερες διαστάσεις με παρόμοιο τρόπο.
=> Κάντε κλικ εδώ για το δωρεάν μάθημα C ++.
Συνιστώμενη ανάγνωση
- Πίνακες σε STL
- Χρήση συστοιχιών με λειτουργίες στο C ++
- Πίνακες C ++ με παραδείγματα
- Πίνακες VBScript: Χρήση συναρτήσεων DIM, REDIM, Split και Ubound Array
- Εισαγωγή πολλαπλών εγγράφων στο MongoDB χρησιμοποιώντας πίνακες
- Καλύτερη δωρεάν σειρά C # Tutorial: Ο απόλυτος οδηγός C # για αρχάριους
- Java DataTypes, Loops, Arrays, Switch και Assertions
- Advanced Unix Shell Scripting: Arrays, File and String Test Operators, Ειδικές μεταβλητές