cpp:stl:vector
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
cpp:stl:vector [2020/05/27 16:07] – created gthanos | cpp:stl:vector [2020/05/27 16:30] – [Ένθεση στον πίνακα] gthanos | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== std::vector ====== | ====== std::vector ====== | ||
- | Πρόκειται για μία δομή πίνακα του οποίου η χωρητικότητα μεταβάλλεται δυναμικά με βάση τις ανάγκες αποθήκευσης του προγράμματος. Η χωρητικότητα ενός vector μπορεί να είναι μεγαλύτερη από τον αριθμό των αποθηκευμένων στοιχείων | + | Πρόκειται για μία δομή πίνακα του οποίου η χωρητικότητα μεταβάλλεται δυναμικά με βάση τις ανάγκες αποθήκευσης του προγράμματος. Η παρακάτω εικόνα είναι ενδεικτική της υφιστάμενης δομής δεδομένω που περιγράφει ένα //vector//. Παρατηρήστε ότι η χωρητικότητα ενός vector μπορεί να είναι μεγαλύτερη από τον αριθμό των αποθηκευμένων στοιχείων του. |
{{ : | {{ : | ||
+ | |||
+ | ===== Επίδοσης της δομής ===== | ||
+ | |||
+ | * Η πράξη της ένθεσης ή της διαγραφής από τον τέλος του πίνακα έχει σταθερό κόστος **(O(1))**. | ||
+ | * Η πράξη της ένθεσης ή της διαγραφής από το μέσο ή την αρχή του πίνακα συνεπάγεται την μετακίνηση όλων των στοιχείων που βρίσκονται δεξιότερα κατά μία θέση και η επίδοσης της εξαρτάται από την θέση της ένθεσης ή της διαγραφής σε σχέση με το τέλος του πίνακα. Ο επιμερισμένος χρόνος της συγκεκριμένης πράξης είναι γραμμικός στο μέγεθος των αποθηκευμένων στοιχείων του πίνακα **(Ο(Ν))**. | ||
+ | * Η πράξη της αναζήτησης είναι γραμμική στο μέγεθος των στοιχείων του πίνακα **(Ο(Ν))**. | ||
+ | |||
+ | ==== Ένθεση στον πίνακα ==== | ||
+ | |||
+ | Όπως προαναφέρθηκε, | ||
+ | |||
+ | <code cpp vector_insert.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | using namespace std; | ||
+ | |||
+ | template< | ||
+ | void print(vector< | ||
+ | for(auto it = v.cbegin(); it!=v.cend(); | ||
+ | cout << setw(4) << *it; | ||
+ | cout << endl; | ||
+ | } | ||
+ | |||
+ | template< | ||
+ | void print_r(vector< | ||
+ | for(auto it = v.crbegin(); | ||
+ | cout << setw(4) << *it; | ||
+ | cout << endl; | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | vector< | ||
+ | for(int i=0; i<10; i++) { | ||
+ | ints.push_back(i+1); | ||
+ | ints.insert(ints.begin(), | ||
+ | } | ||
+ | print(ints); | ||
+ | } | ||
+ | </ | ||
+ |
cpp/stl/vector.txt · Last modified: 2023/05/29 19:12 by gthanos