User Tools

Site Tools


cpp:stl:deque

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cpp:stl:deque [2020/06/01 09:08] – [Επίδοσης της δομής] gthanoscpp:stl:deque [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 2: Line 2:
  
  
-H συγκεκριμένη κλάση περιγράφει ένα //double-ended queue//, δηλαδή μία ουρά η οποία επιδέχεται γρήγορης εισαγωγής και διαγραφής στοιχείων στην αρχή και στο τέλος της. Η διπλοουρά είναι δομή ανάλογη με τη δομή [[cpp:stl:vector|vector]] ως προς τον τρόπο που την διαχειριζόμαστε προγραμματιστικά. Η βασική διαφορά από τη [[cpp:stl:vector|vector]] είναι ότι επιτρέπει την γρήγορη ένθεση και διαγραφή όχι μόνο στο τέλος, αλλά και στην αρχή της δομής. Για τον λόγο αυτό, εκτός από τις συναρτήσεις [[http://www.cplusplus.com/reference/deque/deque/push_back/|push_back]] και [[http://www.cplusplus.com/reference/deque/deque/pop_back/|pop_back]], παρέχει και τις συναρτήσεις [[http://www.cplusplus.com/reference/deque/deque/push_front/|push_front]] και [[http://www.cplusplus.com/reference/deque/deque/pop_front/|pop_fron]] για ένθεση και διαγραφή ενός στοιχείου από την αρχή της ουράς.+H συγκεκριμένη κλάση περιγράφει ένα //double-ended queue//, δηλαδή μία ουρά η οποία επιδέχεται γρήγορης εισαγωγής και διαγραφής στοιχείων στην αρχή και στο τέλος της. Η διπλοουρά είναι δομή ανάλογη με τη δομή [[cpp:stl:vector|vector]] ως προς τον τρόπο που την διαχειριζόμαστε προγραμματιστικά. Η βασική διαφορά από τη [[cpp:stl:vector|vector]] είναι ότι επιτρέπει την γρήγορη ένθεση και διαγραφή όχι μόνο στο τέλος, αλλά και στην αρχή της δομής. Για τον λόγο αυτό, εκτός από τις συναρτήσεις [[http://www.cplusplus.com/reference/deque/deque/push_back/|push_back]] και [[http://www.cplusplus.com/reference/deque/deque/pop_back/|pop_back]], παρέχει και τις συναρτήσεις [[http://www.cplusplus.com/reference/deque/deque/push_front/|push_front]] και [[http://www.cplusplus.com/reference/deque/deque/pop_front/|pop_front]] για ένθεση και διαγραφή ενός στοιχείου από την αρχή της ουράς.
  
-Όσον αφορά την εσωτερική υλοποίηση της [[http://www.cplusplus.com/reference/deque/deque/|deque]] αυτή είναι αρκετά διαφορετική σε σχέση με το [[cpp:stl:vector|vector]]. Κατά κανόνα, αποτελείται από ένα σύνολο πινάκων οι οποίοι δεσμεύονται διακριτά μεταξύ τους, καθώς αυξάνονται οι ανάγκες αποθήκευσης περιεχομένου στη δομή. Επιπλέον, διαθέτει ένα πίνακα δεικτών που χρησιμεύει στη διαχείριση των επιμέρους πινάκων που αποτελούν το περιεχομενο της δομής και του δείκτες //begin// και //end// που προσδιορίζουν την αρχή και το τέλος των περιεχομένων (δες το παρακάτω ενδεικτικό σχήμα). Η δομή υποστηρίζει //Random Access Iterators//, όπως και ο //container// [[cpp:stl:vector|vector]].+Όσον αφορά την εσωτερική υλοποίηση της [[http://www.cplusplus.com/reference/deque/deque/|deque]] αυτή είναι αρκετά διαφορετική σε σχέση με το [[cpp:stl:vector|vector]]. Κατά κανόνα, αποτελείται από ένα σύνολο πινάκων οι οποίοι δεσμεύονται διακριτά μεταξύ τους, καθώς αυξάνονται οι ανάγκες αποθήκευσης περιεχομένου στη δομή. Επιπλέον, διαθέτει ένα πίνακα δεικτών που χρησιμεύει στη διαχείριση των επιμέρους πινάκων που αποτελούν το περιεχόμενο της δομής και του δείκτες //begin// και //end// που προσδιορίζουν την αρχή και το τέλος των περιεχομένων (δες το παρακάτω ενδεικτικό σχήμα). Η δομή υποστηρίζει //Random Access Iterators//, όπως και ο //container// [[cpp:stl:vector|vector]].
  
 {{ :cpp:stl:deque01.png?250 |}} {{ :cpp:stl:deque01.png?250 |}}
cpp/stl/deque.1591002497.txt.gz · Last modified: 2020/06/01 08:08 (external edit)