cpp:stl:container_common_functions
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
cpp:stl:container_common_functions [2021/06/06 20:48] – gthanos | cpp:stl:container_common_functions [2023/05/29 16:33] – [Ανάθεση των περιεχομένων ενός container από τα περιεχόμενα ενός άλλου container] gthanos | ||
---|---|---|---|
Line 3: | Line 3: | ||
===== Εισαγωγή στοιχείου ===== | ===== Εισαγωγή στοιχείου ===== | ||
- | Με εξαίρεση την κλάση [[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 set ==== | ||
Σε ένα // | Σε ένα // | ||
- | <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 75: | Line 83: | ||
Η διαγραφή στοιχείου είναι ανάλογη της εισαγωγής και γίνεται μέσω της συνάρτησης //erase//. H συνάρτηση επιστρέφει έναν // | Η διαγραφή στοιχείου είναι ανάλογη της εισαγωγής και γίνεται μέσω της συνάρτησης //erase//. H συνάρτηση επιστρέφει έναν // | ||
- | === A. Διαγραφή από λίστα === | + | ==== A. Διαγραφή από λίστα |
Το παρακάτω παράδειγμα είναι από τη σελίδα [[http:// | Το παρακάτω παράδειγμα είναι από τη σελίδα [[http:// | ||
Line 116: | Line 124: | ||
- | === B. Διαγραφή από set === | + | ==== B. Διαγραφή από set ==== |
Το παρακάτω παράδειγμα είναι από τη σελίδα [[http:// | Το παρακάτω παράδειγμα είναι από τη σελίδα [[http:// | ||
Line 155: | Line 163: | ||
</ | </ | ||
- | ==== Αναζήτηση στοιχείου ==== | + | ===== Αναζήτηση στοιχείου |
Η διαδικασία αναζήτησης ενός στοιχείου είναι διαφορετική εάν αναζητούμε σε //sequence container// ή σε // | Η διαδικασία αναζήτησης ενός στοιχείου είναι διαφορετική εάν αναζητούμε σε //sequence container// ή σε // | ||
Line 267: | Line 275: | ||
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 312: | ||
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 316: | Line 328: | ||
H συνάρτηση //assign// διαγράφει τα υφιστάμενα περιεχόμενα του // | H συνάρτηση //assign// διαγράφει τα υφιστάμενα περιεχόμενα του // | ||
</ | </ | ||
- | |||
- |
cpp/stl/container_common_functions.txt · Last modified: 2023/05/30 19:18 by gthanos