Σε αυτό το σεμινάριο, θα μάθουμε για το 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 - αριθμός

Παράδειγμα 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 ++.

Σημείωση: Εάν δεν τροποποιούμε τον πίνακα / φορέα / συλλογή εντός του βρόχου, είναι καλύτερο να χρησιμοποιήσετε τη const
λέξη-κλειδί στη δήλωση εύρους.
// collection is not modified in the loop for (const int &var : num) ( // code )