Διαδρομές
/
C++
C++
/
Ύλη
/
Πίνακες και διανύσματα
Πί

Πίνακες και διανύσματα σε C++

3 ασκήσεις

Σχετικά με την έννοια Πίνακες και διανύσματα

Πίνακες και διανύσματα

Η C++ προσφέρει διαφορετικούς περιέκτες για να αποθηκεύεις στοιχεία του ίδιου τύπου με συγκεκριμένη σειρά. Υπάρχει το std::array για περιέκτες σταθερού μεγέθους και το std::vector, το οποίο προσφέρει δυνατότητα δυναμικής αλλαγής μεγέθους.

Δημιουργία

Όταν δηλώνεις έναν πίνακα ή ένα διάνυσμα, πρέπει να προσδιορίσεις τον τύπο των στοιχείων που θα περιέχει ο περιέκτης. Οι πίνακες χρειάζονται επίσης ένα μέγεθος. Κοίτα αυτά τα παραδείγματα για να δεις την αρχικοποίηση των δύο τύπων περιεκτών:

#include <array>
#include <string>

// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times

Τα διανύσματα συνήθως χρειάζονται περισσότερο χώρο, καθώς δεσμεύουν μνήμη για περαιτέρω ανάπτυξη. Δεν χρειάζεται να προσδιορίσεις μέγεθος:

#include <vector>

// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1

Σημείωση: Δεν χρειάζεται να γνωρίζεις ακόμη την ακριβή μηχανική πίσω από την έννοια του template, θα έχει τη δική της έννοια πιο κάτω στο δέντρο του προγράμματος σπουδών.

Πρόσβαση στα στοιχεία

Τα διανύσματα και οι πίνακες μοιράζονται τις ίδιες συναρτήσεις για την πρόσβαση στα στοιχεία τους. Μπορείς να χρησιμοποιήσεις τις συναρτήσεις-μέλη front και back για να πάρεις το πρώτο και το τελευταίο στοιχείο του περιέκτη. Υπάρχουν επίσης η at και ο τελεστής [] για να έχεις πρόσβαση σε συγκεκριμένα στοιχεία.

countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"

Σημείωση: Αν διαλέξεις μια θέση που δεν βρίσκεται στο εύρος του περιέκτη σου, το [] μπορεί να οδηγήσει σε απροσδιόριστη συμπεριφορά. Η συνάρτηση at θα πετάξει μια εξαίρεση, που μακροπρόθεσμα μπορεί να σου κάνει τη ζωή πιο εύκολη.

Τροποποιητές διανύσματος

Καθώς το vector δεν έχει σταθερό μέγεθος, μπορείς να προσθέτεις ή να αφαιρείς στοιχεία. Δύο συνηθισμένες συναρτήσεις για αυτόν τον σκοπό είναι οι emplace_back και pop_back.

std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team

Χωρητικότητα

Μπορείς να ελέγξεις αν οι περιέκτες είναι άδειοι με τη συνάρτηση-μέλος empty. Αν θέλεις να μάθεις τον αριθμό των στοιχείων, μπορείς να χρησιμοποιήσεις τη size.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Πίνακες και διανύσματα

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 4 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Πίνακες και διανύσματα