cpp:stl:vector
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
cpp:stl:vector [2020/05/29 10:44] – [Διαγραφή των περιεχομένων του πίνακα] gthanos | cpp:stl:vector [2020/06/01 09:01] – [std::vector] gthanos | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== std::vector ====== | ====== std::vector ====== | ||
- | Πρόκειται για μία δομή πίνακα του οποίου η χωρητικότητα μεταβάλλεται δυναμικά με βάση τις ανάγκες αποθήκευσης του προγράμματος. Η παρακάτω εικόνα είναι ενδεικτική της υφιστάμενης δομής δεδομένω που περιγράφει ένα //vector//. Παρατηρήστε ότι η χωρητικότητα ενός vector μπορεί να είναι μεγαλύτερη από τον αριθμό των αποθηκευμένων στοιχείων του. | + | Πρόκειται για μία δομή πίνακα του οποίου η χωρητικότητα μεταβάλλεται δυναμικά με βάση τις ανάγκες αποθήκευσης του προγράμματος. Η παρακάτω εικόνα είναι ενδεικτική της υφιστάμενης δομής δεδομένων που περιγράφει ένα //vector//. Παρατηρήστε ότι η χωρητικότητα ενός |
- | {{ :cpp:stl:vector02.png?600 |}} | + | {{ :cpp:stl:vector03.png?600 |}} |
**Σημείωση: | **Σημείωση: | ||
Line 12: | Line 12: | ||
* Η πράξη της ένθεσης ή της διαγραφής από το μέσο ή την αρχή του πίνακα συνεπάγεται την μετακίνηση όλων των στοιχείων που βρίσκονται δεξιότερα κατά μία θέση και η επίδοση της εξαρτάται από την θέση της ένθεσης ή της διαγραφής σε σχέση με το τέλος του πίνακα. Ο επιμερισμένος χρόνος της συγκεκριμένης πράξης είναι γραμμικός στο μέγεθος των αποθηκευμένων στοιχείων του πίνακα **(Ο(Ν))**. | * Η πράξη της ένθεσης ή της διαγραφής από το μέσο ή την αρχή του πίνακα συνεπάγεται την μετακίνηση όλων των στοιχείων που βρίσκονται δεξιότερα κατά μία θέση και η επίδοση της εξαρτάται από την θέση της ένθεσης ή της διαγραφής σε σχέση με το τέλος του πίνακα. Ο επιμερισμένος χρόνος της συγκεκριμένης πράξης είναι γραμμικός στο μέγεθος των αποθηκευμένων στοιχείων του πίνακα **(Ο(Ν))**. | ||
* Η πράξη της αναζήτησης είναι γραμμική στο μέγεθος των στοιχείων του πίνακα **(Ο(Ν))**. | * Η πράξη της αναζήτησης είναι γραμμική στο μέγεθος των στοιχείων του πίνακα **(Ο(Ν))**. | ||
+ | * Η πρόσβαση στο i-στο στοιχείο της λίστας έχει κόστος 1. | ||
===== Πρόσβαση στα στοιχεία του πίνακα ===== | ===== Πρόσβαση στα στοιχεία του πίνακα ===== | ||
Line 206: | Line 207: | ||
</ | </ | ||
- | < | + | < |
**Σημείωση: | **Σημείωση: | ||
Αποτελεί γενικότερο κανόνα της STL ότι παρέχει εξειδικευμένες συναρτήσεις για ένθεση και διαγραφή στην αρχή ή/και στο τέλος της δομής μόνο εάν η δομή υποστηρίζει τη γρήγορη ένθεση/ | Αποτελεί γενικότερο κανόνα της STL ότι παρέχει εξειδικευμένες συναρτήσεις για ένθεση και διαγραφή στην αρχή ή/και στο τέλος της δομής μόνο εάν η δομή υποστηρίζει τη γρήγορη ένθεση/ | ||
</ | </ | ||
- | ===== Ανάθεση των περιεχομένων του vector από οποιοδήποτε άλλο container ===== | ||
- | |||
- | Η ανάθεση των περιεχομένων ενός //vector// μέσω της συνάρτησης // | ||
- | |||
- | <code cpp vector_assign.cpp> | ||
- | #include < | ||
- | #include < | ||
- | #include < | ||
- | #include < | ||
- | using namespace std; | ||
- | |||
- | template< | ||
- | void print(vector< | ||
- | for(auto it = v.cbegin(); it!=v.cend(); | ||
- | cout << setw(3) << *it; | ||
- | cout << endl; | ||
- | } | ||
- | |||
- | int main () { | ||
- | vector< | ||
- | array< | ||
- | |||
- | v.assign(a.begin(), | ||
- | | ||
- | print(v); | ||
- | } | ||
- | </ | ||
cpp/stl/vector.txt · Last modified: 2023/05/29 19:12 by gthanos