Σπίτι Προσωπικά Οικονομικά C ++ Προγραμματισμός: Κάντε το δρόμο σας μέσω μιας λίστας - dummies

C ++ Προγραμματισμός: Κάντε το δρόμο σας μέσω μιας λίστας - dummies

Βίντεο: Coding Challenge #3: The Snake Game 2024

Βίντεο: Coding Challenge #3: The Snake Game 2024
Anonim

Ο προγραμματιστής C ++ επαναλαμβάνει μέσω ενός πίνακα, παρέχοντας τον δείκτη κάθε στοιχείου. Ωστόσο, αυτή η τεχνική δεν λειτουργεί για δοχεία όπως λίστα που δεν επιτρέπουν τυχαία πρόσβαση. Κάποιος θα μπορούσε να φανταστεί μια λύση βασισμένη σε μεθόδους όπως getFirst () και getNext () . Ωστόσο, οι σχεδιαστές της βιβλιοθήκης πρότυπων προτύπων ήθελαν να παράσχουν μια κοινή μέθοδο για τη διέλευση οποιουδήποτε τύπου δοχείου.

Για αυτό, η Τυπική Βιβλιοθήκη προτύπων ορίζει τον iterator.

Ένας iterator είναι ένα αντικείμενο που δείχνει τα μέλη ενός δοχείου. Γενικά, κάθε iterator υποστηρίζει τις ακόλουθες λειτουργίες:

  • Μια κλάση μπορεί να επιστρέψει ένα iterator που δείχνει το πρώτο μέλος της συλλογής.

  • Ο iterator μπορεί να μετακινηθεί από το ένα μέλος στο άλλο.

  • Το iterator επιστρέφει μια ένδειξη όταν φτάσει στο τέλος της λίστας.

  • Το πρόγραμμα μπορεί να ανακτήσει το στοιχείο που υποδεικνύεται από το iterator.

Η Βιβλιοθήκη Πρότυπων Προτύπων παρέχει επίσης αντίστροφοι iterators για μετακίνηση προς τα πίσω μέσω καταλόγων. Τα πάντα εδώ για τους iterators ισχύουν εξίσου για τους αντίστροφους iterators.

Ο κωδικός που απαιτείται για την επανάληψη μέσω μιας λίστας είναι διαφορετικός από τον απαραίτητο για την μετάβαση ενός φορέα (για να αναφέρουμε μόνο δύο παραδείγματα). Ωστόσο, ο iterator αποκρύπτει αυτές τις λεπτομέρειες.

Η μέθοδος begin () επιστρέφει έναν iterator που δείχνει το πρώτο στοιχείο μιας λίστας. Ο χειριστής διεύθυνσης * () ανακτά μια αναφορά στο αντικείμενο που υποδεικνύεται από το iterator. Ο χειριστής ++ μετακινεί το iterator στο επόμενο στοιχείο της λίστας.

Ένα πρόγραμμα συνεχίζει να αυξάνει το δρόμο του μέσα από τη λίστα μέχρι το iterator να είναι ίσο με την τιμή που επιστρέφεται στο end () . Το ακόλουθο απόσπασμα κώδικα ξεκινά στην αρχή μιας λίστας μαθητών και εμφανίζει καθένα από τα ονόματά τους:

void displayStudents (λίστα & σπουδαστές) {// να διανείμει ένα iterator που δείχνει το πρώτο στοιχείο // στη λίστα λίστας:: iterator iter = φοιτητές. αρχίζουν(); // συνεχίστε να βγείτε από τη λίστα μέχρι ο // iterator να αγγίξει το τέλος της λίστας ενώ (iter! = students. end ()) {// να ανακτήσει το Student τα σημεία iterator στο Student & s = * iter; cout << s. sName << endl; // τώρα μετακινήστε το iterator στο επόμενο στοιχείο // στη λίστα iter ++;}}

Οι δηλώσεις για τους iterators μπορούν να γίνουν πολύ περίπλοκες. Αυτή είναι ίσως η καλύτερη αιτιολόγηση της δήλωσης auto που εισήχθη με το πρότυπο '11:

για (auto iter = students. 

Αυτό δηλώνει ότι είναι iterator οποιασδήποτε μορφής επιστρέφεται από τη λίστα μεθόδων:: begin () , αποφεύγοντας τις βασανισμένες δηλώσεις που εμφανίζονται στο προηγούμενο απόσπασμα κώδικα.Πόσο δροσερό είναι αυτό!

C ++ Προγραμματισμός: Κάντε το δρόμο σας μέσω μιας λίστας - dummies

Η επιλογή των συντακτών

Πώς να αλλάξετε τη ρύθμιση ισορροπίας λευκού σε ετικέτες Canon EOS 70D

Πώς να αλλάξετε τη ρύθμιση ισορροπίας λευκού σε ετικέτες Canon EOS 70D

Χρησιμοποιώντας το Ο έλεγχος εξισορρόπησης λευκού στο Canon EOS 70D σας μπορεί εύκολα και γρήγορα να διορθώσει προβλήματα χρώματος. Οι διαθέσιμες ρυθμίσεις ισορροπίας λευκού απεικονίζονται με τα σύμβολα που εμφανίζονται στον παρακάτω πίνακα. Μπορείτε να δείτε την τρέχουσα ρύθμιση στην οθόνη Ρυθμίσεις λήψης, όπως φαίνεται στο παρακάτω σχήμα. Για να προσαρμόσετε τη ρύθμιση, έχετε ...

Η επιλογή των συντακτών

Προετοιμασία αντιγράφου TIFF ψηφιακής εικόνας για δημοσίευση - ανδρεικέλες

Προετοιμασία αντιγράφου TIFF ψηφιακής εικόνας για δημοσίευση - ανδρεικέλες

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

Εξάγοντας το περίγραμμα επιλογής του ψηφιακού σας επεξεργαστή εικόνας - ανδρείκελα

Εξάγοντας το περίγραμμα επιλογής του ψηφιακού σας επεξεργαστή εικόνας - ανδρείκελα

Η πρώτη προσπάθεια. Αναμείνετε να βελτιώσετε το περίγραμμα επιλογής σας τουλάχιστον λίγο. Μπορείτε να βελτιώσετε το περίγραμμα σας με διάφορους τρόπους: Αντίστροφη περιγράμματος επιλογής: Απλά χρησιμοποιήστε την εντολή Invert (ή την αντίστοιχη εντολή του προγράμματος). Προσθέστε σε περίγραμμα επιλογής: ...

Επιλογή από τις άκρες της ψηφιακής εικόνας - ανδρείκελα

Επιλογή από τις άκρες της ψηφιακής εικόνας - ανδρείκελα

Όπου οι φωτεινές περιοχές πληρούν τις σκοτεινές περιοχές. Πολλά προγράμματα επεξεργασίας φωτογραφιών σας επιτρέπουν να σχεδιάσετε ένα περίγραμμα επιλογής κατά μήκος ενός άκρου. Το εργαλείο αναζητά άκρες κοντά στο σημείο που σύρετε το ποντίκι.

Η επιλογή των συντακτών

Πώς να χρησιμοποιείτε το παράθυρο μητρώου του QuickBooks 2010 - dummies

Πώς να χρησιμοποιείτε το παράθυρο μητρώου του QuickBooks 2010 - dummies

Για να εργαστείτε ευκολότερα με το παράθυρο του Μητρώου και να ελέγξετε τον τρόπο εμφάνισής του: Το κουμπί Μετάβαση: Εμφανίζει το παράθυρο διαλόγου Μετάβαση (Go To). Αυτό το παράθυρο διαλόγου σάς επιτρέπει να αναζητήσετε μια συναλλαγή στο παράθυρο "Εγγραφή". Για παράδειγμα, μπορείτε να αναζητήσετε ...

Πώς να εργάζεστε με έναν υπάρχοντα προϋπολογισμό σε QuickBooks - dummies

Πώς να εργάζεστε με έναν υπάρχοντα προϋπολογισμό σε QuickBooks - dummies

Σε μεγάλες εταιρείες με εκατοντάδες ή χιλιάδες εργαζόμενοι, δύο ή τρία άτομα δαπανούν μεγάλο μέρος ή και ολόκληρο το χρόνο εργασίας τους με τα στοιχεία που έχουν εγγραφεί στον προϋπολογισμό. Για να επεξεργαστείτε έναν υπάρχοντα προϋπολογισμό στο QuickBooks, ακολουθήστε τα παρακάτω βήματα:

Πώς να χρησιμοποιείτε τα κουτιά παραθύρων αναφορών του QuickBooks - dummies

Πώς να χρησιμοποιείτε τα κουτιά παραθύρων αναφορών του QuickBooks - dummies

Από, Προς, Στήλες και Ταξινόμηση. Αυτά τα πλαίσια σας επιτρέπουν επίσης να ελέγχετε τις πληροφορίες που εμφανίζονται στο παράθυρο αναφοράς και την εμφάνιση των πληροφοριών. Για παράδειγμα, μπορείτε να ενημερώσετε το QuickBooks για το χρονικό διάστημα που θέλετε ...