Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να μάθετε Εμπορευματοκιβώτια STL

Οι κατηγορίες δοχείο STL κάνει τον προγραμματισμό παραγωγικό, ασφαλή και ισχυρή . Είναι έξυπνοι πίνακες που εκτελούν κατανομή μνήμης αυτόματα , να αλλάξετε το μέγεθος , να σας αφήσει να περάσετε μεταβλητές με αναφορά , εισάγετε στοιχεία σε οποιοδήποτε σημείο , όλα με απίστευτα απόδοση . Παρέχουν έναν καλό λόγο για να μεταβείτε από C με χαζή συστοιχίες σε C ​​+ + . STL προσφέρει δύο τύπους κατηγορίες δοχείων : απλή και συνειρμικό , όπου ένα κλειδί που σχετίζεται με κάθε αποθηκευμένο αντικείμενο. Τα πράγματα που θα χρειαστείτε
Βασικές γνώσεις της C + +
A C + + compiler και κατά προτίμηση ένα ολοκληρωμένο περιβάλλον ανάπτυξης
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

Διαβάστε και προαιρετικά απομνημονεύει τις δύο κατηγορίες τάξεις του δοχείου . Απομνημόνευση τους δεν έβλαψε ποτέ κανέναν και θα είναι επωφελής για σας σε μακροπρόθεσμη βάση Απλές Containers : . Φορέα <> , λίστες <> , στοίβα <> , ουρά <> , deque <>
Associative Containers : map <> , που <> , διαθέτει πολλαπλούς <> , πολυσύνολο <> 2

Μάθετε για όλες τις τάξεις του δοχείου με το να δείξει πώς μπορεί να χρησιμοποιηθεί ένα απλό δοχείο . Αυτό το σεμινάριο θα περιγράφουν τις μεθόδους του φορέα <> .
Εικόνων 3

Αντιστοιχίστε ένα μέγεθος με το φορέα . Μπορείτε να ορίσετε το μέγεθος φορέα χρησιμοποιώντας οποιαδήποτε από τις υπερφορτωμένο κατασκευαστές . Επιπλέον , μπορείτε να χρησιμοποιήσετε το αποθεματικό ( ) ή να εκχωρήσετε (μέθοδος ) αφού έχετε δηλώσει φορέα . Όλες οι μέθοδοι που φαίνεται παρακάτω :
φορέα άφ ( 50 ) ? //Προσδιορίζει την ικανότητα
φορέα arr ( 50 , 17 ) ? //Προσδιορίζει την ικανότητα και να δώσει όλα τα στοιχεία μια προκαθορισμένη τιμή ( 17 )
arr2 φορέα ( ARR ) ? //αρχικοποίηση ενός φορέα από άλλο φορέα
διάνυσμα vec ?
vec.reserve ( 100 ) ? //ή τη χρήση αποθεματικών ( ) να εκχωρήσει μνήμη
Η 4

επαναλάβει σε ένα φορέα . Μπορείτε να το κάνετε αυτό, χρησιμοποιώντας το πρότυπο δείκτη [ ] φορέα ή μέσω iterators , που είναι ένα ιδιαίτερο χαρακτηριστικό STL . Δυνατότητές τους είναι πέρα από το πεδίο εφαρμογής της παρούσας φροντιστήριο . Οι ακόλουθες δημιουργίας ενός κώδικα και αποδεικνύουν το μέγεθος ( ) , να αρχίσει ( ) και στο τέλος ( ) μέλη :
//χρήση τυποποιημένων ευρετηρίασης
for (int i = 0 ? I } cout
//χρήση iterators
για (vector <> :: iterator iter = vec.begin ( ) ? ! iter = vec.end ( ) ? ITER + + ) { cout
}
5

Προσθέστε ένα στοιχείο , στο τέλος , . καταργήσετε αυτό το στοιχείο , τοποθετήστε ένα στοιχείο στη μέση και να επιστρέψει το μέγεθος του δοχείου Μπορείτε να εκτελέσετε όλες αυτές τις λειτουργίες με τη χρήση του push_back ( ) , pop_back ( ) , τοποθετήστε ( ) και το μέγεθος ( μεθόδους ) , αντίστοιχα , όπως φαίνεται παρακάτω :
vec.push_back ( 35 ) ?
vec.pop_back ( ) ?
vec.insert ( pos , 19 ) ? //pos είναι η θέση
cout
6

Σβήστε τα στοιχεία μέσα μια σειρά , να διαγράψει το υπόλοιπο των στοιχείων και βεβαιωθείτε ότι ο φορέας είναι άδειο . Γι 'αυτούς , μπορείτε να χρησιμοποιήσετε τη διαγραφή συναρτήσεις ( ) , προκύπτει ( ) και κενά ( ) .
vec.erase ( vec.begin ( ) + 5 , vec.end ( ) - 5 ) ? //διαγράψετε όλα τα στοιχεία εκτός από το πρώτο και το τελευταίο 5
vec.clear ( ) ? //διαγράψετε όλα τα στοιχεία
if (true == vec.empty ( ) . ) { ... } //έλεγχος αν ο φορέας είναι άδειο
Η 7

Ελέγξτε όλες τις συναρτήσεις που προσφέρονται σε φορέα <> Πολλοί είναι κοινά σε όλη την υπόλοιπη των κατηγοριών δοχείου :
_Destroy ( ) , _Eq ( ) , _Lt ( ) , _Ucopy ( ) , _Ufill ( ) , να εκχωρήσει ( ) , στο ( ) , να αρχίσει ( ) , πίσω ( ) , χωρητικότητα ( ) , clear ( ) , empty () , τέλος ( ) , να διαγράψει ( ) , εμπρός ( ) , get_allocator ( ) , MAX_SIZE ( ) , τοποθετήστε ( ) , χειριστής = , χειριστής [ ] , pop_back ( ) , push_back ( ) , rbegin ( ) , των ενοικιαζομένων ( ) , το αποθεματικό ( ) , το μέγεθος ( ) , το μέγεθος ( ) , ανταλλαγής ( ) , ~ διάνυσμα ( ) .
8

Βεβαιωθείτε ότι έχετε συμπεριλάβει το αρχείο header vector.h στην κορυφή του αρχείου προέλευσης πριν να ελέγξετε τον κωδικό αυτό για τον εαυτό σας . κάθε τάξη δοχείο έχει το δικό του αρχείο επικεφαλίδα του . ένας κατάλογος <> θα απαιτήσει list.h , μια ουρά <> θα απαιτήσει queue.h , και ούτω καθεξής .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα