| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| cpp:stl:container_common_functions [2023/05/29 16:33] – [Ανάθεση των περιεχομένων ενός container από τα περιεχόμενα ενός άλλου container] gthanos | cpp:stl:container_common_functions [2023/05/30 19:18] (current) – [Αναζήτηση σε associative container και unordered associative container] gthanos |
|---|
| ====== Κοινές συναρτήσεις για όλους τους containers ====== | ====== Κοινές συναρτήσεις για περισσότερους του ενός containers ====== |
| |
| ===== Εισαγωγή στοιχείου ===== | ===== Εισαγωγή στοιχείου ===== |
| |
| Με εξαίρεση την κλάση [[array|std::array]] που το μέγεθος των πινάκων που δημιουργεί είναι σταθερό και δηλώνεται κατά τη δήλωση του πίνακα, οι υπόλοιποι //containers// μπορούν να μεταβάλλουν το αριθμό των στοιχείων που αποθηκεύουν. Για την εισαγωγή ενός στοιχείου σε έναν //container// υπάρχουν οι συναρτήσεις //insert// για την εισαγωγή ενός αντιγράφου του στοιχείου στον container και //emplace// για την δημιουργία ενός αντικειμένου και εισαγωγή του στον //container//. Επιπλέον, μόνο για τους //sequence containers// η //insert// λαμβάνει ως πρώτο όρισμα έναν //iterator// που δηλώνει τη θέση εισαγωγής του στοιχείου στον container. Για τις υπόλοιπες κατηγορίες //containers//, η //insert// δεν λαμβάνει ως πρώτο όρισμα έναν //iterator// (εάν λαμβάνει, αυτό είναι ενδεικτικό και καλό είναι να αποφεύγετε η χρήση του). | Με εξαίρεση την κλάση [[array|std::array]] που το μέγεθος των πινάκων που δημιουργεί είναι σταθερό και δηλώνεται κατά τη δήλωση του πίνακα, οι υπόλοιποι //containers// μπορούν να μεταβάλλουν το αριθμό των στοιχείων που αποθηκεύουν. Για την εισαγωγή ενός στοιχείου σε έναν //container// υπάρχουν οι συναρτήσεις //insert// για την εισαγωγή ενός αντιγράφου του στοιχείου στον container και //emplace// για την δημιουργία ενός αντικειμένου και εισαγωγή του στον //container//. Επιπλέον, μόνο για τους //sequence containers// η //insert// λαμβάνει ως πρώτο όρισμα έναν //iterator// που δηλώνει τη θέση εισαγωγής του στοιχείου στον container. Για τις υπόλοιπες κατηγορίες //containers//, η //insert// δε λαμβάνει ως πρώτο όρισμα έναν //iterator// (υπάρχουν περιπτώσεις που λαμβάνει, αλλά αυτό είναι ενδεικτικό και συνιστάται να αποφεύγετε τη χρήση του). |
| |
| Παραδείγματα: | Παραδείγματα: |
| |
| return 0; | return 0; |
| | } |
| </code> | </code> |
| |
| std::unordered_set<std::string> myset; | std::unordered_set<std::string> myset; |
| std::unordered_set<std::string>::iterator it; | std::unordered_set<std::string>::iterator it; |
| char* word[] = { "sugar", "choco", "milk", "banana", "coffee" }; | std::string word[] = { "sugar", "choco", "milk", "banana", "coffee" }; |
| |
| // unordered_set some initial values: | // unordered_set some initial values: |
| |
| <WRAP tip 80% center round> | <WRAP tip 80% center round> |
| H συνάρτηση //assign// διαγράφει τα υφιστάμενα περιεχόμενα του //container// πριν ανάθεση των νέων περιεχομένων. Προσαρμόζει το μέγεθος του //container// ανάλογα με τον αριθμό των στοιχείων που θα εισάγει σε αυτόν. | H συνάρτηση //assign// διαγράφει τα υφιστάμενα περιεχόμενα του //container// πριν ανάθεση των νέων περιεχομένων. Επιπλέον, προσαρμόζει το μέγεθος του //container// ανάλογα με τον αριθμό των στοιχείων που θα εισάγει σε αυτόν. |
| </WRAP> | </WRAP> |