vectors stl
Ο ρόλος των διανυσμάτων στο STL με παραδείγματα.
Μέχρι στιγμής, σε αυτήν τη σειρά C ++, έχουμε δει στατικές συστοιχίες που έχουν σταθερό μέγεθος.
Εάν στη μέση του προγράμματος πρέπει να αποθηκεύσουμε περισσότερα στοιχεία στον πίνακα, τότε καθίσταται αδύνατο και είμαστε σίγουροι ότι θα έχουμε εξαίρεση 'out_of_bound', τη στιγμή που προσπαθούμε να αποθηκεύσουμε στοιχεία πέρα από τα όρια του πίνακα.
Μία λύση για αυτό είναι να δηλωθεί ο πίνακας με τη μέγιστη χωρητικότητα, ώστε να μην βρούμε κανένα πρόβλημα στην αποθήκευση περισσότερων στοιχείων κατά το χρόνο εκτέλεσης. Αλλά αυτή η διάταξη έχει ένα σοβαρό μειονέκτημα στο ότι δηλαδή χάνουμε πάρα πολύ μνήμη.
=> Δείτε την ολοκληρωμένη σειρά προπόνησης C ++ εδώ.
Η απάντηση σε όλα αυτά τα ζητήματα είναι μια δυναμική συστοιχία που θα επεκταθεί από μόνη της, καθώς απαιτείται. Το STL παρέχει αυτήν τη δυναμική συστοιχία με τη μορφή ενός φορέα περιέκτη.
Τι θα μάθετε:
- Πώς ορίζουμε τα διανύσματα;
- Δήλωση διανύσματος σε C ++ με std :: Κατηγορία φορέα
- Αρχικοποίηση του διανύσματος
- Διάνυσμα επαναληπτικό
- Διάνυσμα λειτουργίες
- Χωρητικότητα φορέα
- Διάνυσμα τροποποιητές
- 2D διάνυσμα
- Παράδειγμα φορέα
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Πώς ορίζουμε τα διανύσματα;
Τα διανύσματα είναι δοχεία δυναμικών συστοιχιών που αλλάζουν το μέγεθός τους αυτόματα όταν εισάγονται ή διαγράφονται στοιχεία. Η αποθήκευση του φορέα γίνεται από το ίδιο το δοχείο του φορέα.
Τα στοιχεία στον φορέα αποθηκεύονται σε γειτονικές τοποθεσίες. Ακριβώς όπως οι πίνακες, τα διανυσματικά στοιχεία μπορούν επίσης να διασχίζονται και να προσπελαστούν χρησιμοποιώντας επαναληπτικά.
Δήλωση διανύσματος σε C ++ με std :: Κατηγορία φορέα
Στην κατηγορία διανυσμάτων STL std :: διάνυσμα Ορίζεται κάτω από την κεφαλίδα. Επομένως, για να χρησιμοποιήσουμε ένα διανυσματικό κοντέινερ, πρέπει να συμπεριλάβουμε αυτήν την κεφαλίδα στο πρόγραμμά μας όπως φαίνεται παρακάτω:
#include
Μπορούμε να δηλώσουμε έναν κενό φορέα όπως φαίνεται παρακάτω:
std::vector myvec;
Η παραπάνω γραμμή κώδικα θα δημιουργήσει ένα διάνυσμα με τα στοιχεία του ακέραιου τύπου. Στη μνήμη, αυτό θα παρουσιαστεί ως myvec.
Αρχικοποίηση του διανύσματος
Μπορούμε να προετοιμάσουμε ένα διάνυσμα με τιμή τη στιγμή της δήλωσής του.
πρότυπο δοκιμαστικής υπόθεσης excel δωρεάν λήψη
Αυτό γίνεται ως εξής:
#include int main() { std::vector myvec = {1, 1, 2, 3, 5}; }
Στον παραπάνω κώδικα, δηλώνουμε ένα διάνυσμα τύπου int με το όνομα myvec που περιέχει τα πρώτα πέντε στοιχεία στην ακολουθία Fibonacci.
Η διάταξη μνήμης αυτού του διανύσματος θα έχει ως εξής:
Διάνυσμα επαναληπτικό
Όπως έχει ήδη αναφερθεί, χρησιμοποιούμε επαναληπτικούς για να διασχίσουμε τον φορέα διαδοχικά.
Τα διανύσματα υποστηρίζουν τις ακόλουθες λειτουργίες επαναλήψεων για να περάσουν τα στοιχεία:
- να αρχίσει() - Επιστρέφει τον επαναληπτικό που δείχνει το πρώτο στοιχείο του διανύσματος περιέκτη.
- τέλος() - Επιστρέφει έναν επαναληπτικό δείχνοντας το στοιχείο που ακολουθεί το τελευταίο στοιχείο του διανύσματος.
- rbegin () - Επιστρέφει έναν αντίστροφο επαναληπτικό που δείχνει το τελευταίο στοιχείο στο διανυσματικό κοντέινερ.
- απόδοση () - Επιστρέφει έναν αντίστροφο επαναληπτικό δείχνοντας το πρώτο στοιχείο του φορέα περιέκτη.
- cbegin () - Επιστρέφει έναν σταθερό επαναληπτικό που δείχνει το πρώτο στοιχείο στο διανυσματικό κοντέινερ.
- λίγα() - Επιστρέφει έναν σταθερό επαναληπτικό που δείχνει το στοιχείο που ακολουθεί το τελευταίο στοιχείο του διανύσματος περιέκτη.
- crbegin () - Επιστρέφει έναν αντίστροφο σταθερό επαναληπτή που δείχνει το τελευταίο στοιχείο στο διανυσματικό δοχείο.
- κορώνα () - Επιστρέφει έναν αντίστροφο σταθερό επαναληπτή που δείχνει το πρώτο στοιχείο στο δοχείο του διανύσματος.
Ας δούμε ένα παράδειγμα που θα αποδεικνύει αυτές τις επαναληπτικές λειτουργίες.Οι άλλες λειτουργίες μπορούν να χρησιμοποιηθούν με παρόμοιο τρόπο.
#include #include using namespace std; int main() { vector v1; for (int i = 1; i <= 5; i++) v1.push_back(i+1); cout << 'Output of Vector with begin and end: '; for (auto i = v1.begin(); i != v1.end(); ++i) cout << *i << ' '; cout << '
Output of Vector with rbegin and rend: '; for (auto itr = v1.rbegin(); itr != v1.rend(); ++itr) cout << *itr << ' '; cout << '
Output Vector of with cbegin and cend: '; for (auto itc = v1.cbegin(); itc != v1.cend(); ++itc) cout << *itc << ' '; cout << '
Output Vector of with crbegin and crend : '; for (auto icr = v1.crbegin(); icr != v1.crend(); ++icr) cout << *icr << ' '; return 0; }
Παραγωγή:
Έξοδος του διανύσματος με έναρξη και τέλος: 2 3 4 5 6
Έξοδος του διανύσματος με rbegin και rend: 6 5 4 3 2
Διάνυσμα εξόδου με cbegin και cend: 2 3 4 5 6
Διάνυσμα εξόδου με crbegin και crend: 6 5 4 3 2
Έτσι, σε αυτόν τον κώδικα, δηλώνουμε ένα διάνυσμα και εισάγουμε τιμές σε αυτό χρησιμοποιώντας τη συνάρτηση push_back. Στη συνέχεια, εμφανίζουμε τα διανύσματα χρησιμοποιώντας κάθε μία από τις συναρτήσεις επαναλήψεων που περιγράψαμε παραπάνω. Όπως βλέπετε από την έξοδο, ανάλογα με τις επαναλαμβανόμενες συναρτήσεις, η σειρά με την οποία εμφανίζεται το διάνυσμα αλλάζει.
Διάνυσμα λειτουργίες
Ταξινόμηση ενός διανύσματος
Μπορούμε να χρησιμοποιήσουμε αλγόριθμους STL που έχουμε ήδη δει στο διάνυσμα.
Παρακάτω δίνεται το παράδειγμα της χρήσης 'Ταξινόμηση' στο διάνυσμα.
#include #include #include using namespace std; int main() { vector myvec = {10,50,30,20,60,40}; cout<<'Original Vector'< Παραγωγή:
Πρωτότυπο διάνυσμα
10 50 30 20 60 40
Ταξινομημένο διάνυσμα
10 20 30 40 50 60
Στο παραπάνω παράδειγμα, έχουμε αρχικοποιήσει ένα διάνυσμα και στη συνέχεια εφαρμόσαμε έναν αλγόριθμο ταξινόμησης για να ταξινομήσουμε το διάνυσμα.
Εκτύπωση στοιχείων ενός διανύσματος
Τα διανύσματα μπορούν να εκτυπωθούν χρησιμοποιώντας έναν επαναληπτικό και μια ροή «cout». Μπορούμε να χρησιμοποιήσουμε έναν επαναληπτικό για να περάσουμε από κάθε ένα από τα διανυσματικά στοιχεία και να τα εκτυπώσουμε με cout.
Το ακόλουθο παράδειγμα δείχνει αυτό:
#include #include using namespace std; int main() { vector v1; for (int i = 1; i <= 5; i++) v1.push_back(i+2); cout << 'Output of Vector with begin and end: '; for (auto i = v1.begin(); i != v1.end(); ++i) cout << *i << ' '; }
Παραγωγή:
Έξοδος του διανύσματος με έναρξη και τέλος: 3 4 5 6 7
Χωρητικότητα φορέα
Υπάρχουν διάφορες λειτουργίες που δρουν στα διανύσματα για να καθορίσουν το μέγεθός του, το μέγιστο μέγεθος κ.λπ.
Παραθέτουμε τις συναρτήσεις ως εξής:
(i) Μέγεθος του διανύσματος
Το μέγεθος συνάρτησης () επιστρέφει τον αριθμό των στοιχείων στο δοχείο του διανύσματος. Αυτή είναι η ενσωματωμένη συνάρτηση της κλάσης std :: vector και μπορεί να χρησιμοποιηθεί απευθείας για να βρει το μέγεθος του διανύσματος.
ποια προγράμματα μπορούν να ανοίξουν αρχεία eps
Ας δούμε ένα παράδειγμα διανύσματος χρησιμοποιώντας τη συνάρτηση size ():
#include #include using namespace std; int main() { vector myvec = {1, 1, 2, 3, 5, 8}; cout << 'Vector Size : ' << myvec.size(); return 0; }
Παραγωγή:
Μέγεθος φορέα: 6
Στο παραπάνω πρόγραμμα, έχουμε ορίσει ένα διάνυσμα myvec που αποτελείται από έξι στοιχεία. Στη συνέχεια, καλούμε τη συνάρτηση size () στο myvec και εμφανίζει το σωστό μέγεθος.
(ii) Αλλαγή μεγέθους ενός διανύσματος
Μπορούμε επίσης να αλλάξουμε το μέγεθος ενός διανύσματος στο επιθυμητό μέγεθος έτσι ώστε να μπορεί να διατηρήσει τον αριθμό των στοιχείων «n». Αυτό επιτυγχάνεται με τη λειτουργία «resize ()» της κλάσης std :: vector. Η συνάρτηση αλλαγής μεγέθους λαμβάνει το μέγεθος του διανύσματος ως την παράμετρο και μετά αλλάζει το μέγεθος του φορέα περιέκτη στο καθορισμένο μέγεθος.
Ας το καταλάβουμε με τη βοήθεια ενός Παραδείγματος.
#include #include using namespace std; int main() { vector myvec = {1, 1, 2, 3, 5, 8}; cout << '
Vector elements are: '; for (auto it = myvec.begin(); it != myvec.end(); it++) cout << *it << ' '; myvec.resize(4); cout << '
Vector Size after resize: ' << myvec.size(); cout << '
Vector elements after resizing are: '; for (auto it = myvec.begin(); it != myvec.end(); it++) cout << *it << ' '; return 0; }
Παραγωγή:
Τα διανυσματικά στοιχεία είναι: 1 1 2 3 5 8
Διάνυσμα Μέγεθος μετά το μέγεθος: 4
Τα διανυσματικά στοιχεία μετά το μέγεθος είναι: 1 1 2 3
Στο παραπάνω πρόγραμμα, ορίζουμε αρχικά ένα διάνυσμα myvec μεγέθους 6. Στη συνέχεια καλούμε τη συνάρτηση αλλαγής μεγέθους σε αυτόν τον φορέα με μέγεθος = 4. Αυτό σημαίνει ότι θέλουμε να αλλάξουμε το μέγεθος του φορέα μας στο μέγεθος 4 τώρα.
Αφού καλέσετε τη λειτουργία αλλαγής μεγέθους, εκτυπώνουμε ξανά το διάνυσμα. Βλέπουμε ότι όταν αλλάζουμε το μέγεθος του διανύσματος στο μέγεθος 4, τα υπόλοιπα στοιχεία απορρίπτονται και εμφανίζονται μόνο τα 4 στοιχεία του διανύσματος.
Εκτός από τις λειτουργίες μεγέθους και αλλαγής μεγέθους, η κλάση διανυσμάτων υποστηρίζει επίσης μερικές ακόμη λειτουργίες που μας επιτρέπουν να χειριστούμε τη χωρητικότητα του διανύσματος. Αυτοί είναι:
- μέγιστο μέγεθος (): Επιστρέφει το μέγιστο μέγεθος, δηλαδή τον μέγιστο αριθμό στοιχείων που μπορεί να διατηρήσει το διάνυσμα.
- χωρητικότητα(): Επιστρέφει το μέγεθος του αποθηκευτικού χώρου που έχει εκχωρηθεί αυτήν τη στιγμή. Αυτό επιστρέφεται ως προς τον αριθμό των στοιχείων.
- αδειάζω(): Ελέγχει εάν το δοχείο είναι άδειο.
- shrink_to_fit (): Μειώνει τη χωρητικότητα του διανύσματος ώστε να ταιριάζει στο μέγεθος και απορρίπτει όλα τα άλλα στοιχεία.
- Αποθεματικό(): Διατηρεί τη χωρητικότητα του διανύσματος να περιέχει στοιχεία n.
Διάνυσμα τροποποιητές
Οι τροποποιητές είναι λειτουργίες ή λειτουργίες που μπορούν να χρησιμοποιηθούν για την τροποποίηση του περιεχομένου του φορέα περιέκτη. Θα δούμε μερικές από τις κύριες λειτουργίες που χρησιμοποιούνται ως τροποποιητές.
Εκχώρηση νέων τιμών στο διάνυσμα
Μία από τις λειτουργίες τροποποιητών που παρέχονται από το std :: vector είναι η συνάρτηση ανάθεσης. Η συνάρτηση Assign εκχωρεί νέες τιμές στο διάνυσμα αντικαθιστώντας τις παλιές.
Αυτό φαίνεται στο ακόλουθο παράδειγμα.
#include #include using namespace std; int main() { // Assign vector vector myvec; // assign value 10 5 times myvec.assign(5, 10); cout << 'The vector elements: '; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; }
Παραγωγή:
Τα διανυσματικά στοιχεία: 10 10 10 10 10
Στον παραπάνω κώδικα, δηλώνουμε ένα διάνυσμα τύπου int. Στη συνέχεια καλούμε να αντιστοιχίσουμε μια συνάρτηση με τις παραμέτρους 5, 10. Αυτό σημαίνει ότι σκοπεύουμε να αντιστοιχίσουμε το στοιχείο 10 στο διάνυσμα 5 φορές. Όταν εμφανίζουμε το διάνυσμα, βλέπουμε ότι το διάνυσμα έχει 5 στοιχεία, όλα με τιμή 5.
Διαγραφή ενός διανύσματος
Η επόμενη συνάρτηση που παρέχεται από το std :: vector για τροποποίηση ενός διανύσματος είναι η συνάρτηση «erase». Η λειτουργία διαγραφής αφαιρεί τα στοιχεία από το καθορισμένο εύρος ή μια θέση από το διάνυσμα.
Ας δούμε ένα παράδειγμα της συνάρτησης Διαγραφή.
#include #include using namespace std; int main() { // Initialize vector vector myvec = {1,1,2,3,5}; cout << '
Vector elements:'; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; // remove the first element myvec.erase(myvec.begin()); cout<<'
Vector size after erase: '< Παραγωγή:
Διανυσματικά στοιχεία: 1 1 2 3 5
Μέγεθος φορέα μετά τη διαγραφή: 4
Διάνυσμα μετά τη λειτουργία διαγραφής: 1 2 3 5
Όπως φαίνεται στην παραπάνω έξοδο για τη λειτουργία αλλαγής μεγέθους, καθορίζουμε το εύρος ή τη θέση του στοιχείου που πρόκειται να διαγραφεί ή να αφαιρεθεί. Στο παραπάνω παράδειγμα, έχουμε καθορίσει τη θέση που δείχνει το πρώτο στοιχείο του διανύσματος.
Εισαγάγετε στοιχεία στο διάνυσμα
Η διανυσματική κλάση std :: vector παρέχει μια ακόμη συνάρτηση για την εισαγωγή τιμών στο διάνυσμα. Η συνάρτηση εισαγωγής μας επιτρέπει να εισάγουμε στοιχεία στον φορέα πριν από την καθορισμένη θέση.
Αυτό θα είναι σαφές με το ακόλουθο παράδειγμα.
#include #include using namespace std; int main() { // Assign vector vector myvec = {2,3,4}; cout << '
Initial vector: '; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; // inserts 20 at the beginning, 30 after that myvec.insert(myvec.begin(), 20); myvec.insert(myvec.begin()+1,30); cout << '
New vector after insert: '; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; }
Παραγωγή:
Αρχικό διάνυσμα: 2 3 4
Νέο διάνυσμα μετά το ένθετο: 20 30 2 3 4
Το παραπάνω πρόγραμμα δηλώνει αρχικά ένα διάνυσμα με 3 στοιχεία. Στη συνέχεια καλούμε τη λειτουργία εισαγωγής δύο φορές για να εισαγάγουμε τις τιμές 20 και 30 στην πρώτη και τη δεύτερη θέση στον φορέα αντίστοιχα. Στη συνέχεια, εμφανίζεται το αλλαγμένο διάνυσμα.
Ανταλλαγή διανυσματικών περιεχομένων
Η κλάση διανυσμάτων μας παρέχει επίσης τη δυνατότητα ανταλλαγής ή ανταλλαγής περιεχομένων ενός φορέα με αυτό ενός άλλου διανύσματος του ίδιου τύπου και μεγέθους. Αυτό επιτυγχάνεται με ενσωματωμένη συνάρτηση φορέα «swap».
Εξετάστε το ακόλουθο κομμάτι κώδικα.
#include #include using namespace std; int main() { // swap operation vector v1, v2; v1.push_back(1); v1.push_back(3); v2.push_back(5); v2.push_back(7); cout << '
Vector 1: '; for (int i = 0; i < v1.size(); i++) cout << v1(i) << ' '; cout << '
Vector 2: '; for (int i = 0; i < v2.size(); i++) cout << v2(i) << ' '; // Swaps v1 and v2 v1.swap(v2); cout << '
After Swap
Vector 1: '; for (int i = 0; i < v1.size(); i++) cout << v1(i) << ' '; cout << '
Vector 2: '; for (int i = 0; i < v2.size(); i++) cout << v2(i) << ' '; }
Παραγωγή:
Διάνυσμα 1: 1 3
Διάνυσμα 2: 5 7
Μετά την ανταλλαγή
Διάνυσμα 1: 5 7
Διάνυσμα 2: 1 3
Ο παραπάνω κώδικας δείχνει το περιεχόμενο δύο διανυσμάτων πριν και μετά την ανταλλαγή.
Εκκαθάριση τιμών στο διάνυσμα
Σε αντίθεση με την κατάργηση ενός ή περισσοτέρων στοιχείων από τον φορέα χρησιμοποιώντας τη συνάρτηση διαγραφής, έχουμε μια άλλη συνάρτηση «Εκκαθάριση» που μας επιτρέπει να αφαιρέσουμε όλα τα στοιχεία στο δοχείο του διανύσματος.
Στο παρακάτω πρόγραμμα, παρουσιάζουμε μια σαφή λειτουργία του φορέα περιέκτη.
#include #include using namespace std; int main() { // swap operation vector v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); v1.push_back(7); cout<<'
Size of vector v1: '< Παραγωγή:
Μέγεθος διανύσματος v1: 4
Διάνυσμα 1: 1 3 5 7
Μέγεθος του διανύσματος v1 μετά την κλήση σε εκκαθάριση: 0
Εδώ δηλώνουμε πρώτα ένα διάνυσμα και μετά πιέζουμε στοιχεία σε αυτό. Μόλις ονομάσουμε τη συνάρτηση καθαρή (), βλέπουμε ότι όλα τα στοιχεία του διανύσματος αφαιρούνται ταυτόχρονα.
στις (θέση)
Αυτή η συνάρτηση επιστρέφει την αναφορά στο στοιχείο στη θέση «pos» εντός του διανύσματος.
Αυτή είναι μία από τις συναρτήσεις που χρησιμοποιούνται για την πρόσβαση στο διανυσματικό στοιχείο.
Ένα παράδειγμα δίνεται παρακάτω:
#include #include using namespace std; int main() { // Assign vector vector myvec = {1,1,2,3,5,8}; cout<<'
Element at position 3 : '< Παραγωγή:
Στοιχείο στη θέση 3: 3
Όπως φαίνεται στο παράδειγμα, η συνάρτηση «at» χρησιμοποιείται για την πρόσβαση στο στοιχείο του διανύσματος στην καθορισμένη θέση.
Εμπρός
Η συνάρτηση «front» επιστρέφει την αναφορά στο πρώτο στοιχείο του διανύσματος. Αυτή είναι μια ακόμη λειτουργία που χρησιμοποιούμε για πρόσβαση στα στοιχεία του διανύσματος κοντέινερ.
Το παρακάτω παράδειγμα δείχνει τη χρήση της λειτουργίας «εμπρός».
#include #include #include using namespace std; int main() { // Initialize vector vector myvec = {1,1,2,3,5,8}; cout<<'
Input vector: '; for(auto it=myvec.begin();it Παραγωγή:
Διάνυσμα εισόδου: 1 1 2 3 5 8
Στοιχείο στο μπροστινό μέρος του διανύσματος: 1
Πίσω
Παρόμοια με τη λειτουργία «εμπρός», η συνάρτηση πίσω χρησιμοποιείται για πρόσβαση στο τελευταίο στοιχείο του φορέα περιέκτη. Η συνάρτηση «πίσω» επιστρέφει μια αναφορά στο τελευταίο στοιχείο στο διανυσματικό κοντέινερ.
Το ακόλουθο παράδειγμα δείχνει τη χρήση της λειτουργίας «πίσω».
#include #include #include using namespace std; int main() { // Initialize vector vector myvec = {1,1,2,3,5,8}; cout<<'
Input vector: '; for(auto it=myvec.begin();it Παραγωγή:
Διάνυσμα εισόδου: 1 1 2 3 5 8
Στοιχείο στο πίσω μέρος του διανύσματος: 8
Βρείτε ένα στοιχείο στο διάνυσμα
Η συνάρτηση «εύρεση» χρησιμοποιείται για να βρει αν ένα συγκεκριμένο στοιχείο (αναφέρεται ως κλειδί) υπάρχει στο διάνυσμα ή όχι. Αυτή η λειτουργία υποτίθεται ότι είναι γρήγορη και αποτελεσματική. Μόλις βρεθεί η τιμή, η συνάρτηση επιστρέφει.
Το ακόλουθο παράδειγμα δείχνει τη χρήση της συνάρτησης εύρεσης.
#include #include #include using namespace std; int main() { // Assign vector vector myvec = {1,1,2,3,5,8}; cout<<'
Input vector: '; for(auto it=myvec.begin();itkey; if(find(myvec.begin(),myvec.end(),key)!= myvec.end()) cout<<'
Element found'; else cout<<'
Element not found'; }
Παραγωγή:
Διάνυσμα εισόδου: 1 1 2 3 5 8
Εισαγάγετε το κλειδί προς αναζήτηση: 0
Το στοιχείο δεν βρέθηκε
2D διάνυσμα
Το δισδιάστατο διάνυσμα είναι επίσης γνωστό ως «Διάνυσμα του διανύσματος». Ακριβώς όπως οι δισδιάστατες συστοιχίες, τα στοιχεία των διαστάσεων διανυσμάτων είναι επίσης διατεταγμένα σε μορφή μήτρας.
Ένα παράδειγμα προγράμματος για 2D φορέα δίνεται παρακάτω.
ερωτήσεις συνέντευξης συντονισμού απόδοσης oracle dba
#include #include // for 2D vector using namespace std; int main() { // Initializing 2D vector 'odd_vect' with vector odd_vect{ { 1, 3, 5 }, { 7, 9, 11 }, { 13,15,17 } }; // Displaying the 2D vector cout<<'2D vector : '; cout< Παραγωγή:
Διάνυσμα 2D:
1 3 5
7 9 11
13 15 17
Στο παραπάνω παράδειγμα, σημειώστε τον τρόπο με τον οποίο ορίζεται ο 2Δ φορέας. Ορίζεται ως διάνυσμα μέσα σε άλλο φορέα. Κατά την εμφάνιση αυτού του διανύσματος 2D, χρησιμοποιούμε την ίδια προσέγγιση με αυτήν της εμφάνισης 2D συστοιχιών.
Παράδειγμα φορέα
Δίνεται παρακάτω ένα διανυσματικό παράδειγμα που περιέχει τις περισσότερες από τις διανυσματικές λειτουργίες.
#include #include using namespace std; int main() { // Assign vector vector myvec; // assign value 10 5 times myvec.assign(5, 10); cout << 'The vector elements: '; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; // push value 5 in myvec myvec.push_back(5); int n = myvec.size(); cout << '
The new vector after push_back:'; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; // pop the element myvec.pop_back(); cout<<'
New vector after pop_back : '; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; // inserts 20 at the beginning myvec.insert(myvec.begin(), 20); cout << '
New vector after insert: '; for (int i = 0; i < myvec.size(); i++) cout << myvec(i) << ' '; // remove the first element myvec.erase(myvec.begin()); cout<<'
Vector size after erase: '< Παραγωγή:
Τα διανυσματικά στοιχεία: 10 10 10 10 10
Το νέο διάνυσμα μετά το push_back: 10 10 10 10 10 5
Νέο διάνυσμα μετά το pop_back: 10 10 10 10 10
Νέο διάνυσμα μετά το ένθετο: 20 10 10 10 10 10
Μέγεθος φορέα μετά τη διαγραφή: 5
Μετά τη διαγραφή πρώτο στοιχείο: 10 10 10 10 10
Ακολουθεί το στιγμιότυπο οθόνης για το ίδιο.
Στο παραπάνω παράδειγμα, δηλώνουμε ένα διάνυσμα και στη συνέχεια χρησιμοποιώντας τις συναρτήσεις εκχώρησης και ώθησης, εισαγάγετε στοιχεία στο διάνυσμα. Στη συνέχεια, χρησιμοποιούμε τη συνάρτηση pop_back για να αφαιρέσουμε ένα στοιχείο από το τέλος του διανύσματος. Μετά από αυτό, προσθέτουμε και πάλι ένα στοιχείο στο διάνυσμα χρησιμοποιώντας το στοιχείο εισαγωγής και μετά διαγράφουμε το στοιχείο χρησιμοποιώντας τη λειτουργία διαγραφής.
Αυτό είναι ένα άκρο σε άκρο παράδειγμα του περιέκτη φορέα που δείχνει τις διάφορες λειτουργίες του.
συμπέρασμα
Με αυτό, φτάσαμε στο τέλος αυτού του σεμιναρίου για το διάνυσμα.
Στο επερχόμενο σεμινάριό μας, θα μάθουμε για το κοντέινερ «λίστας» του STL που είναι παρόμοιο με τις γραμμές συστοιχιών και διανυσμάτων.
=> Ανατρέξτε στον τέλειο οδηγό εκπαίδευσης C ++ εδώ.
Συνιστώμενη ανάγνωση