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

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

Πώς μπορούμε να Δυναμικά Διαθέστε Array Μέγεθος

; πίνακες στον προγραμματισμό ηλεκτρονικών υπολογιστών είναι συλλογές ή ακολουθίες των τιμών που περιέχονται σε ένα μόνο όνομα μεταβλητής . Αυτές οι δομές δεδομένων επιτρέπουν στους προγραμματιστές να εκπροσωπεί σειρά δεδομένων ή καταλόγους δεδομένων για μια ποικιλία σκοπών , όπως διαλογής ή επανάληψη. Ωστόσο , σε πολλές γλώσσες προγραμματισμού , όπως η C /C + + , συστοιχίες προγραμματιστές πρέπει να δηλώσουν στατικό , αμετάβλητο μεγέθη array . Με τη χρήση τεχνικών κατανομή μνήμης σε μια γλώσσα όπως η C + + , ο προγραμματιστής μπορεί να δημιουργήσει δυναμικά πίνακες ή ακόμα και να αλλάξετε το μέγεθος των εν λόγω πίνακες κατά τη διάρκεια της εκτέλεσης του προγράμματος . Πίνακες
Η

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

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

Η Δυναμική
Πίνακες

Με συστοιχίες , ο προγραμματιστής πρέπει να δηλώσει το μέγεθος του πίνακα σε δήλωση. Το μέγεθος αυτό πρέπει να εκπροσωπείται από μία σταθερή τιμή , είτε μια σταθερή μεταβλητή ή έναν ακέραιο . Ωστόσο, χρησιμοποιώντας το «νέο» φορέα , ο προγραμματιστής μπορεί να χρησιμοποιήσει τακτικές μεταβλητές συστοιχίες μεγέθους , και ο χρήστης μπορεί να εισέλθει ακόμη και την αξία αυτών των μεταβλητών κατά το χρόνο εκτέλεσης . Το παρακάτω παράδειγμα δείχνει τη διαφορά :

int main ( ) { int

arr [ 5 ] ? //Νέα σειρά , πρέπει να έχουν διαστάσεις σταθερό μέγεθος valueint = 5 ? Int * dynamic_array = νέα int [size ] ? //μέγεθος του πίνακα είναι δυναμική
εικόνων αλλαγή μεγέθους πίνακες
Η

Με αυτές τις δυναμικές συστοιχίες , ο προγραμματιστής μπορεί στη συνέχεια να δημιουργήσετε συστοιχίες που μπορεί να αλλάξει το μέγεθός τους . Η κατηγορία « φορέας » αντιπροσωπεύει μια δυναμικά την επέκταση ή συρρίκνωση συστοιχία ότι taks πλεονέκτημα των δυναμικών πινάκων . Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να δημιουργήσετε ένα απλό πίνακα που μεγαλώνει σε μέγεθος :

int main ( ) { int

* arr = new int [ 5 ] ? Int new_size = 10 ?

arr [ 0 ] = 1 ? arr [ 1 ] = 2 ?

/* το μέγεθος * /int * arr2 = new int [ new_size ] ?

arr2 [ 0 ] = arr [ 0 ] ? arr2 [ 1 ] = arr [ 1 ] ?

delete [ ] arr ? arr = arr2 ?

επιστροφή 0? }
εικόνων

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

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