C ++ Ranged for Loop (Με παραδείγματα)

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

Το C ++ 11 εισήγαγε το forβρόχο εύρους. Αυτός ο forβρόχος χρησιμοποιείται ειδικά με συλλογές όπως πίνακες και διανύσματα .

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

 // initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )

Εδώ, ο κυκλικός forβρόχος επαναλαμβάνει τον αριθμό πίνακα από την αρχή έως το τέλος. Η intμεταβλητή var αποθηκεύει την τιμή του στοιχείου πίνακα σε κάθε επανάληψη.

Η σύνταξή του είναι,

 for (rangeDeclaration : rangeExpression) ( // code )

Στο παραπάνω παράδειγμα,

  • rangeDeclaration -int var
  • rangeExpression - αριθμός
Εργασία εύρους για βρόχο σε C ++

Παράδειγμα 1: Ranged for Loop χρησιμοποιώντας Array

 #include using namespace std; int main() ( // initialize array int numArray() = (1, 2, 3, 4, 5); // use of ranged for loop to print array elements for (int n : numArray) ( cout << n << " "; ) return 0; )

Παραγωγή

 1 2 3 4 5

Σε αυτό το παράδειγμα, δηλώσαμε και αρχικοποιήσαμε έναν intπίνακα με το όνομα numArray. Εδώ, χρησιμοποιήσαμε το forβρόχο εύρους για να εκτυπώσουμε τα στοιχεία του numArray.

  • πρώτη επανάληψη - n λαμβάνει την τιμή του πρώτου μέλους του πίνακα, που είναι1
  • δεύτερη επανάληψη - το n λαμβάνει την τιμή 2και στη συνέχεια εκτυπώνεται και ούτω καθεξής.

Σημείωση: Το εύρος για βρόχο επαναλαμβάνει αυτόματα τον πίνακα από την αρχή έως το τέλος του. Δεν χρειάζεται να καθορίσουμε τον αριθμό των επαναλήψεων στο βρόχο.

Παράδειγμα 2: C ++ Ranged for Loop Using Vector

 #include #include using namespace std; int main() ( // declare and initialize vector vector num_vector = (1, 2, 3, 4, 5); // print vector elements for (int n : num_vector) ( cout << n << " "; ) return 0; )

Παραγωγή

 1 2 3 4 5

Παράδειγμα 3: Δήλωση συλλογής μέσα στο βρόχο

 #include using namespace std; int main() ( // define the collection in the loop itself for (int n : (1, 2, 3, 4, 5)) ( cout << n << " "; ) return 0; )

Παραγωγή

 1 2 3 4 5

Εδώ, δηλώσαμε τη συλλογή εντός του ίδιου του βρόχου δηλαδή

 rangeExpression = (1, 2, 3, 4, 5)

Αυτός είναι επίσης ένας έγκυρος τρόπος χρήσης του forβρόχου εύρους και λειτουργεί με τον ίδιο τρόπο όπως όταν χρησιμοποιούμε έναν πραγματικό πίνακα ή φορέα.

C ++ για βέλτιστες πρακτικές βρόχου

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

 int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )

Ωστόσο, είναι καλύτερο να γράψετε το εύρος βάσει βρόχου ως εξής:

 // access memory location of elements of num for (int &var : num) ( // code )

Παρατηρήστε τη χρήση &πριν από το var. Εδώ,

  • int var : num- Αντιγράφει κάθε στοιχείο του αριθμού στη μεταβλητή var σε κάθε επανάληψη. Αυτό δεν είναι καλό για τη μνήμη του υπολογιστή.
  • int &var : num- Δεν αντιγράφει κάθε στοιχείο του αριθμού στο var. Αντ 'αυτού, αποκτά πρόσβαση στα στοιχεία του αριθμού απευθείας από τον ίδιο τον αριθμό. Αυτό είναι πιο αποτελεσματικό.

Σημείωση: Ο &χειριστής είναι γνωστός ως τελεστής αναφοράς. Θα μάθουμε περισσότερα για αυτό σε δείκτες C ++.

Η εργασία της διεύθυνσης που δείχνει στο C ++ κυμαινόταν για βρόχο

Σημείωση: Εάν δεν τροποποιούμε τον πίνακα / φορέα / συλλογή εντός του βρόχου, είναι καλύτερο να χρησιμοποιήσετε τη constλέξη-κλειδί στη δήλωση εύρους.

 // collection is not modified in the loop for (const int &var : num) ( // code )

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