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)