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

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

Διαφορά μεταξύ Vector & Κατάλογος σε C + +

Η Standard C + + βιβλιοθήκη προτύπων περιέχει δύο παρόμοια αλλά διαφορετικά δοχεία : ο φορέας και ο κατάλογος . Ένα διάνυσμα είναι μια σειρά από διαδοχικά διατεταγμένα στοιχεία που μπορεί να αυξηθεί ή να συρρικνωθεί δυναμικά ? Κατάλογο είναι ένα σύνολο από συνδεδεμένα στοιχεία που δεν είναι απαραίτητα διαδοχικά τοποθετημένα στη μνήμη , αλλά μπορεί να προσεγγιστεί διαδοχικά , διότι κάθε στοιχείο έχει μια σύνδεση με το επόμενο στοιχείο. Μαθαίνοντας τις διαφορές μεταξύ του φορέα και του καταλόγου μπορούν να σας βοηθήσουν να γράψετε πιο βελτιστοποιημένες λύσεις σε C ​​+ + . Insertion ταχύτητας
Η

Τα δεδομένα που περιέχονται από ένα φορέα είναι τοποθετημένα διαδοχικά στη μνήμη , πράγμα που σημαίνει ότι αν τοποθετήσετε ένα στοιχείο στην αρχή του ενός φορέα, κάθε στοιχείο στον φορέα πρέπει να μετακινηθεί "κάτω" από ένα. Αυτό είναι υπολογιστικά δαπανηρή , ειδικά για μεγάλα φορέων. Αυτή η ποινή απόδοση έρχεται κάθε φορά που ένα στοιχείο προστίθεται ή αφαιρείται από οποιαδήποτε θέση εκτός από το τελευταίο στοιχείο του διανύσματος . Με μια λίστα , τα δεδομένα δεν είναι απαραίτητα τοποθετημένα διαδοχικά στη μνήμη? Αντ 'αυτού , κάθε στοιχείο της λίστας περιέχει μια σύνδεση με το επόμενο στοιχείο της λίστας . Όταν εισάγετε σε μια λίστα , το στοιχείο μπορεί να τοποθετηθεί οπουδήποτε στη μνήμη , γεγονός που καθιστά την εισαγωγή σε μια λίστα πολύ λιγότερο ακριβά από την εισαγωγή σε ένα φορέα .
Εικόνων Διαλογής
Η

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

Η Random Access

Λίστες

έχουν πιο αργή φορές τυχαίας προσπέλασης από φορείς . Σε έναν φορέα , ένα στοιχείο που μπορεί να είναι άμεσα προσβάσιμα από το δείκτη της . Αυτό δίνει στο φορέα του χρόνου πολύ γρήγορα τυχαίας προσπέλασης . Με μια λίστα , από την άλλη πλευρά , μπορείτε να έχετε πρόσβαση άμεσα μόνο τα πρώτα και τελευταία στοιχεία ? Θα πρέπει να επαναλάβει στη λίστα για να αποκτήσετε πρόσβαση σε άλλα στοιχεία ? Αυτό μπορεί να είναι πολύ αργή για μεγάλες λίστες
εικόνων αλλαγή μεγέθους .
Η

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

Η

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

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