Πίνακες C ++ (με παραδείγματα)

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

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

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

 double grade(27);

Εδώ, ο βαθμός είναι ένας πίνακας που μπορεί να χωρέσει έως και 27 στοιχεία doubleτύπου.

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

C ++ Array Δήλωση

 dataType arrayName(arraySize);

Για παράδειγμα,

 int x(6);

Εδώ,

  • int - τύπος στοιχείου προς αποθήκευση
  • x - όνομα του πίνακα
  • 6 - μέγεθος του πίνακα

Πρόσβαση στα Στοιχεία C ++ Array

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

 // syntax to access array elements array(index);

Εξετάστε τον πίνακα x που έχουμε δει παραπάνω.

Στοιχεία ενός πίνακα σε C ++

Λίγα πράγματα που πρέπει να θυμάστε:

  • Οι δείκτες του πίνακα ξεκινούν με 0. Δηλαδή το x (0) είναι το πρώτο στοιχείο που αποθηκεύεται στο ευρετήριο 0.
  • Εάν το μέγεθος ενός πίνακα είναι n, το τελευταίο στοιχείο αποθηκεύεται στο ευρετήριο (n-1). Σε αυτό το παράδειγμα, το x (5) είναι το τελευταίο στοιχείο.
  • Τα στοιχεία ενός πίνακα έχουν διαδοχικές διευθύνσεις. Για παράδειγμα, ας υποθέσουμε ότι η αρχική διεύθυνση x(0)είναι 2120d. Στη συνέχεια, η διεύθυνση του επόμενου στοιχείου x(1)θα είναι 2124d, η διεύθυνση x(2)θα είναι 2128d και ούτω καθεξής.
    Εδώ, το μέγεθος κάθε στοιχείου αυξάνεται κατά 4. Αυτό συμβαίνει επειδή το μέγεθος intείναι 4 byte.

Αρχικοποίηση συστοιχίας C ++

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

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
C ++ Array στοιχεία και τα δεδομένα τους

Μια άλλη μέθοδος για την προετοιμασία του πίνακα κατά τη δήλωση:

 // declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);

Εδώ, δεν έχουμε αναφέρει το μέγεθος του πίνακα. Σε τέτοιες περιπτώσεις, ο μεταγλωττιστής υπολογίζει αυτόματα το μέγεθος.

C ++ Array με κενά μέλη

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

Για παράδειγμα,

 // store only 3 elements in the array int x(6) = (19, 10, 8);

Εδώ, ο πίνακας x έχει μέγεθος 6. Ωστόσο, το έχουμε αρχίσει με μόνο 3 στοιχεία.

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

Τα μέλη του κενού πίνακα αντιστοιχίζονται αυτόματα στην τιμή 0

Πώς να εισαγάγετε και να εκτυπώσετε στοιχεία πίνακα;

 int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);

Παράδειγμα 1: Εμφάνιση στοιχείων σειράς

 #include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )

Παραγωγή

 Οι αριθμοί είναι: 7 5 6 12 35 Οι αριθμοί είναι: 7 5 6 12 35

Εδώ, έχουμε χρησιμοποιήσει ένα forβρόχο για να επαναλάβει από το i = 0να i = 4. Σε κάθε επανάληψη, έχουμε εκτυπώσει numbers(i).

Χρησιμοποιήσαμε ξανά ένα εύρος βασισμένο σε βρόχο για να εκτυπώσουμε τα στοιχεία του πίνακα. Για να μάθετε περισσότερα σχετικά με αυτόν τον βρόχο, επιλέξτε C ++ Ranged for Loop.

Σημείωση: Στον βρόχο βάσει εύρους, χρησιμοποιήσαμε τον κωδικό const int &nαντί για int nτη δήλωση εύρους. Ωστόσο, το const int &nπροτιμάται περισσότερο επειδή:

  1. Χρησιμοποιώντας int nαπλά αντίγραφα των στοιχείων του πίνακα στη μεταβλητή n κατά τη διάρκεια κάθε επανάληψης. Αυτό δεν είναι αποδοτικό στη μνήμη.
    & n, ωστόσο, χρησιμοποιεί τη διεύθυνση μνήμης των στοιχείων του πίνακα για να αποκτήσει πρόσβαση στα δεδομένα τους χωρίς να τα αντιγράψει σε μια νέα μεταβλητή. Αυτό είναι αποδοτικό στη μνήμη.
  2. Εκτυπώνουμε απλά τα στοιχεία του πίνακα, δεν τα τροποποιούμε. Επομένως, χρησιμοποιούμε constγια να μην αλλάξουμε κατά λάθος τις τιμές του πίνακα.

Παράδειγμα 2: Λήψη εισόδων από το χρήστη και αποθήκευση τους σε μια σειρά

 #include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )

Παραγωγή

 Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15

Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers(i).

Then, we used another for loop to print all the array elements.

Example 3: Display Sum and Average of Array Elements Using for Loop

 #include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )

Output

 The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333

In this program:

  1. We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
    Here, sum =0 and count = 0.
  2. Then we used a range based for loop to print the array elements. In each iteration of the loop, we add the current array element to sum.
  3. Αυξάνουμε επίσης την τιμή μέτρησης κατά 1κάθε επανάληψη, έτσι ώστε να μπορούμε να πάρουμε το μέγεθος του πίνακα μέχρι το τέλος του βρόχου για.
  4. Μετά την εκτύπωση όλων των στοιχείων, εκτυπώνουμε το άθροισμα και τον μέσο όρο όλων των αριθμών. Ο μέσος όρος των αριθμών δίνεται απόaverage = sum / count;

Σημείωση: Χρησιμοποιήσαμε έναν forβρόχο με εύρος αντί για έναν κανονικό forβρόχο.

Ένας κανονικός forβρόχος απαιτεί από εμάς να καθορίσουμε τον αριθμό των επαναλήψεων, που δίνεται από το μέγεθος του πίνακα.

Όμως, ένα εύρος forβρόχου δεν απαιτεί τέτοιες προδιαγραφές.

C ++ Array εκτός ορίων

Εάν δηλώσουμε έναν πίνακα μεγέθους 10, τότε ο πίνακας θα περιέχει στοιχεία από το ευρετήριο 0 έως 9.

Ωστόσο, εάν προσπαθήσουμε να αποκτήσουμε πρόσβαση στο στοιχείο στο ευρετήριο 10 ή περισσότερα από 10, θα έχει ως αποτέλεσμα Απροσδιόριστη Συμπεριφορά.

ενδιαφέροντα άρθρα...