cpp:stl:container_common_functions
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cpp:stl:container_common_functions [2021/06/06 20:48] – gthanos | cpp:stl:container_common_functions [2023/05/30 19:18] (current) – [Αναζήτηση σε associative container και unordered associative container] gthanos | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Κοινές συναρτήσεις για όλους τους containers ====== | + | ====== Κοινές συναρτήσεις για |
| ===== Εισαγωγή στοιχείου ===== | ===== Εισαγωγή στοιχείου ===== | ||
| - | Με εξαίρεση την κλάση [[array|std:: | + | Με εξαίρεση την κλάση [[array|std:: |
| Παραδείγματα: | Παραδείγματα: | ||
| - | ==== A. Ένθεση | + | ==== A. Ένθεση στους sequence_containers list, forward_list, |
| Σε ένα //sequence container// είναι υποχρεωτικό να προσδιορίσουμε τη θέση εισαγωγής του στοιχείου μέσω ενός // | Σε ένα //sequence container// είναι υποχρεωτικό να προσδιορίσουμε τη θέση εισαγωγής του στοιχείου μέσω ενός // | ||
| Line 40: | Line 40: | ||
| </ | </ | ||
| - | ==== Β. Ένθεση σε set ==== | + | <WRAP tip 80% center round> |
| + | Η διαφορά ανάμεσα στις μεθόδους //insert// και //emplace// είναι η εξής: | ||
| + | * Στη μέθοδο //insert// παρέχουμε ένα αντικείμενο και η μέθοδος κατασκευάζει ένα αντίγραφο του μέσω του κατασκευαστή αντιγραφέα (copy-constructor) της κλάσης // | ||
| + | * Στη μέθοδο //empace// παρέχουμε τα ορίσματα μέσω των οποίων κατασκευάζεται ένα αντικείμενο τύπου Student, μέσω του κατασκευαστή '' | ||
| + | </ | ||
| + | |||
| + | ==== Β. Ένθεση σε set, unordered | ||
| Σε ένα // | Σε ένα // | ||
| - | <code cpp string_set_insert.cpp> | + | <code cpp student_set_insert.cpp> |
| #include < | #include < | ||
| #include < | #include < | ||
| - | #include < | + | #include < |
| - | # | + | # |
| int main () { | int main () { | ||
| - | | + | |
| | | ||
| std::cerr << "----- Init set -----" << std::endl; | std::cerr << "----- Init set -----" << std::endl; | ||
| - | std:: | + | std:: |
| - | for(int i=0; i<3; i++) | + | for(int i=0; i<2; i++) { |
| - | myset.insert(strings[i]); | + | myset.insert(students[i]); // copy-constructor, |
| + | myset.insert(students[i]); | ||
| + | } | ||
| | | ||
| - | myset.emplace(" | + | myset.emplace(" |
| | | ||
| std::cerr << " | std::cerr << " | ||
| std::cerr << "myset contains:"; | std::cerr << "myset contains:"; | ||
| - | for (std:: | + | for (std:: |
| std::cerr << ' ' << *it; | std::cerr << ' ' << *it; | ||
| std::cerr << std::endl; | std::cerr << std::endl; | ||
| Line 113: | Line 121: | ||
| return 0; | return 0; | ||
| + | } | ||
| </ | </ | ||
| Line 256: | Line 265: | ||
| std:: | std:: | ||
| std:: | std:: | ||
| - | | + | |
| // unordered_set some initial values: | // unordered_set some initial values: | ||
| Line 267: | Line 276: | ||
| if(it != myset.end()) { | if(it != myset.end()) { | ||
| myset.erase (it); | myset.erase (it); | ||
| - | std::cout << "' | + | std::cout << "' |
| } | } | ||
| else | else | ||
| - | std::cout << "' | + | std::cout << "' |
| | | ||
| print_set(myset); | print_set(myset); | ||
| Line 304: | Line 313: | ||
| int main () { | int main () { | ||
| - | vector< | + | vector< |
| array< | array< | ||
| - | |||
| - | v.assign(a.begin()+1, | ||
| | | ||
| + | | ||
| + | /* Assigns 20, 30, 40, 50 | ||
| + | */ | ||
| + | v.assign(a.begin()+1, | ||
| + | // | ||
| + | // | ||
| print(v); | print(v); | ||
| } | } | ||
| Line 314: | Line 327: | ||
| <WRAP tip 80% center round> | <WRAP tip 80% center round> | ||
| - | H συνάρτηση //assign// διαγράφει τα υφιστάμενα περιεχόμενα του // | + | H συνάρτηση //assign// διαγράφει τα υφιστάμενα περιεχόμενα του // |
| </ | </ | ||
| - | |||
| - | |||
cpp/stl/container_common_functions.1623012539.txt.gz · Last modified: 2021/06/06 19:49 (external edit)
